我写了下面的代码来乘以两个数字,我看到结果不正确。我假设数据类型没有保持正确的值。但答案是打印不正确。
#include<stdio.h>
main()
{
long int val1,val2;
val1=val2=1235;
char c = 'y';
switch(c)
{
case 'y' : printf("%20d",val1*val2);
break;
default: printf("invalid");
break;
}
return 0;
}
输出:
17897 //这不是正确答案
//它实际上应该是1525225
答案 0 :(得分:11)
数据类型保持正确的值,但您使用的是错误的说明符。你应该使用%ld
和long int。
printf("%20ld",val1*val2);
我仔细检查过它。