#include<stdio.h>
void main()
{
int cats,dogs,others,total_pets;
cats=10;
dogs=43;
others=36;
total_pets=cats+dogs;
printf("there are %c total pets are",total_pets);
}
答案 0 :(得分:10)
使用%d
代替%c
中的printf
。
total_pet
的值为53
。当您在%c
中使用printf
时,您正在尝试打印53
值为5
的字符{{1}}恰好为{{1}}。
答案 1 :(得分:4)
请参阅此处的ASCII表:http://web.cs.mun.ca/~michael/c/ascii-table.html
为什么打印5: -
实际上它的'5'不是5.你的代码是打印字符5而不是十进制5.当你使用%c打印整数变量的值时,printf转换整数值与字符等价(如你在ASCII表中看到的)
您可以尝试使用此代码(或者您应该自己编写代码)
void main()
{
int num;
printf("Printing ASCII values Table...\n\n");
num = 1;
while(num<=255)
{
// here you can see how %c and %d works for same variable
printf("\nValue:%d = ASCII Character:%c", num, num);
num++;
}
printf("\n\nEND\n");
}
快乐的编码。
答案 2 :(得分:3)
为什么要将其格式化为%c 使用%d
printf(“总共有%d个宠物 是”,total_pets);
答案 3 :(得分:2)
为什么使用%c
。使用%d
%c single character
%d and %i both used for integer type
%u used for representing unsigned integer
%o octal integer unsigned
%x,%X used for representing hex unsigned integer
%e, %E, %f, %g, %G floating type
%s strings that is sequence of characters
答案 4 :(得分:2)
因为53是ascii图表中'5'所在的位置。
在printf中使用%d。
答案 5 :(得分:2)
%c
是字符说明符,因此printf("there are %c total pets are",total_pets);
打印ascii字符,其值为53,即5
字符。
答案 6 :(得分:1)
%c是打印一个字符。尝试将其更改为%d以获取整数值。
您要打印的是解释为字符的整数值。
答案 7 :(得分:1)
您需要将%c
更改为%d
。