c语言求1!+2!+3!+。。。+10!

如题,希望能稍稍解释一下,谢谢啦

#include <stdio.h>
void main()
{
int a=1,i,sum=0;
for (i=1;i<11;i++)
{
a=a*i;
sum=sum+a;
}
printf("1!+2!+3!+...+10!=%d\n",sum);
}
每次循环都是上一个数的阶乘乘以下一个数,把它们加起来就行了!你应该能看得懂,这个不复杂,这还是我学C的时候编的一只保留着,C语言只是个基础,后面还有很多要你学的呢!加油!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-27
void main()
{
int j,i;
long pro=1;
long int sum=0;
for(i=1;i<=10;i++)
{
pro=1;
for(j=1;j<=i;j++)
{
pro*=j;
}
printf("pro is:%ld\n",pro);//显示本次循环阶乘的值
sum=sum+pro;
printf("sum is:%ld\n",sum);//显示当前所有循环的总值
}
printf("total sum is:%ld\n",sum);
getch();
}

他们说的很好,也很简单,我的比较复杂,但是,我先强调一点的是,
数据类型。
如果数据类型不对的话,无法正常显示。
这道题,和一定要用long int,最后,printf("%ld");
第2个回答  2008-03-27
int result=0,jiecheng=1;
for (int i=1; i<=10; i++)
{
jiecheng*=i;
result+=jiecheng;
}
//循环结束后result即为所求
第3个回答  2008-03-27
int sum=0,deg=1;
for(int i=1;i<=10;i++){
deg*=i;
sum+=deg;
}
cout<<sum<<endl;
第4个回答  2008-03-27
先编个算阶乘的程序,再在main程序中利用循环调用就可以了。