求问 求阶乘代码输出值自动加上前一次的输出 为什么
#include "stdio.h" int main()
{
int i,j,sum1,sum=0,n;
while((scanf("%d",&n)!=EOF&&n!=0))
{
if(n<0)
{
printf("Error!\n");
}
else
{
for(i=1;i<=n;i++)
{
sum1=1;
for(j=1;j<=i;j++)
{
sum1=sum1*j;
}
sum=sum+sum1;
}
printf("%d\n",sum);
}
}
}
这是一个求阶乘的题
输入一个数
输出他对应的阶乘(0<x<10)其他输出ERRor!输入0结束程序
我的问题是现在不知道为啥
第二次输出的数会自己加上前面的输出
距离依次输入
1
5
0
输出变成
1
154
但实际上应该是
1
153
求问为啥?????