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

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:17:24

#include<stdio.h>
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);
}

就是楼上编的那样

楼上明显有错,数据类型根本就存不下sum,会越界!比如输入17以后的数都不能得到结果,应用_int64 来保存sum;
代码:
#include <stdio.h>
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;
}