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
有2个网友回答
网友(1):

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

网友(2):

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