我编写了以下代码来将两个数字相乘,但我发现结果不正确。我假设数据类型没有正确保存值。但其打印的答案是错误的。
#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
最佳答案
数据类型持有正确的值,但您使用了错误的说明符。您应该将 %ld
与 long int 一起使用。
printf("%20ld",val1*val2);
我仔细检查了一下,它成功了。
关于c - C 中的数字相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757127/