C语言求50的阶乘,用while来写,大神来看看为什么不对啊,结果是0。

#include<stdio.h>void main(){ int a,s; a=1; s=1; while(a<=50) { s=a*s; a++; } printf("%d",s);}
2024-11-22 21:36:43
推荐回答(2个)
回答1:

因慧团为阶乘50太大了,变量存不下,所以最后显示0,如果你将阶乘数改小一点就没问题了,比如10
或者将int型改成塌橘long long型,然后结果已%lld输出,但40、50的阶乘也无法容纳,因为结果前衫橘太大了,20、30还可以

回答2:

死循环了吧
while(n > 1)result = result * n; n --;