(纯小白)输出结果错误
本帖最后由 难以冀求 于 2020-5-6 16:55 编辑为什么出来的结果是0
#include <stdio.h>
int main()
{
int a=2,i=1,s=1;
while(i<=50)
{
i+=1;
s*=a;
a+=2;
}
printf("%d\n",s);
return 0;
}
发不了图,下面是运行结果
0
--------------------------------
Process exited after 0.04836 seconds with return value 0
请按任意键继续. . . 本帖最后由 zltzlt 于 2020-5-6 17:03 编辑
数据太大溢出了,每次循环打印一下就看得到,long long 也没用
#include <stdio.h>
int main()
{
long long a = 2, i = 1, s = 1;
while (i <= 50)
{
i += 1;
s *= a;
a += 2;
printf("%lld\n", s);
}
printf("%lld\n", s);
return 0;
} 溢出了吧 你这个结果太大了,int装不下,所以结果为0.
改成long long int也没有用,所以,就是溢出了。 zltzlt 发表于 2020-5-6 17:00
数据太大溢出了,每次循环打印一下就看得到,long long 也没用
就算一定溢出,你也应该 %lld 啊 zltzlt 发表于 2020-5-6 17:00
数据太大溢出了,每次循环打印一下就看得到,long long 也没用
谢谢~ 永恒的蓝色梦想 发表于 2020-5-6 17:02
就算一定溢出,你也应该 %lld 啊
感谢指出{:10_245:}
页:
[1]