C语言编写程序求1!+2!+3!+...+n!,n为输入并且3〈=n〈=20.

2024-11-03 00:20:33
推荐回答(3个)
回答1:

楼上明显有错,数据类型根本就存不下sum,会越界!比如输入17以后的数都不能得到结果,应用_int64 来保存sum;
代码:
#include
int main()
{
int i,n=1,m;
_int64 sum=0;
printf("请输入n:");
scanf("%d",&m);
for(i=1;i<=m;i++)
{
n=n*i;
sum+=n;
printf("sum=%ld\n",sum);
}
return 0;
}

回答2:

#include
void main()
{
int i,a;
float n=1,sum=0;
while(1)
{
scanf("%d",&a);
if(a<3||a>20)
printf("repeat input");
else break;
}
for(i=1;i<=a;i++)
{
n=n*i;
sum=sum+n;
}
printf("1!+2!...+%d!=%.0f",a,sum);
}

回答3:

就是楼上编的那样