c 语言求阶乘问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:14:07
1!+2!+3!....+20!
这么编怎么错了??
#include<stdio.h>
main()
{
int i=1,n=1;
long fac=1,sum=0;
for( ;n<=20; )
{do
{fac=fac*i;
i++;
}while(i<=n);
sum=sum+fac;n++;
}
printf("sun=%ld",sum);
}

#include<stdio.h>
main()
{
int i=1,n=1;
long fac=1,sum=0;
for( ;n<=20; )
{do
{fac=fac*i;
i++;
}while(i<=n);
sum=sum+fac;n++;
fac=1;i=1;//每做完一次阶乘,fac要置1
}
printf("sun=%ld",sum);
}

每次for循环应当都要给 i 赋初值即 i=1;