#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<n;i++){
n*=i;
}
printf("%d\n",n);
}
为什么算不出n的阶乘的结果?
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<n;i++){
n*=i;
}
printf("%d\n",n);
}
为什么算不出n的阶乘的结果?
因为你的for循环里判断条件用了 i < n,而这个 n 又在循环体里做了运算,n 会越来越大直到溢出,i<n的条件就不会正确达成,两个地方不用同样的变量就可以了