求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

#include<stdio.h>
int main()
{
int a=1;
int Sn=0;
int b=1;
int n;
scanf("%d",&n);
if (n>=0 && n<=20)
{
while (a<=n)
{
b=b*a;
a++;
Sn=Sn+b;
}
printf("%d\n",Sn);
}

return 0;
}
不知道那错了求解

第1个回答  2015-11-05
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int n,i,tmp,sn;
printf("Type an integer(n<16)...\nn=");
scanf("%d",&n);
for(n++,tmp=i=1,sn=0;i<n;sn+=tmp*=i++);
printf("The result is %d.\n",sn);
}
第2个回答  2015-06-20
把while改成以下
while (a<=n)
{
Sn=Sn+a*b;
b=a;
a++;
}
经测试是对的追问

还是不对,提交时提示答案错误。

追答

本回答被网友采纳
相似回答