C语言一个简单的小问题(新手发问)

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:50:45
求1!+2!+...+i!
我用下面的程序,调试什么都没错,就得不到正确结果
问高手怎么修改才正确

#include<stdio.h>
void main()
{
int i,m,n,sum=0,a=1;
scanf ("%d",&i);
for (n=1;n<=i;n++)
{
m=1;
while(m<=i)
{a=a*m;
m++;
}
sum=sum+a;
}
printf("sum=%d",sum);
}

注意中间的while循环 和a的值 重新开始一次循环要重新给a赋值
#include<stdio.h>
void main()
{
int i,m,n,sum=0,a=1;
scanf ("%d",&i);
for (n=1;n<=i;n++)
{
m=1;
a=1;
while(m<=n)
{
a=a*m;
m++;
}
sum=sum+a;
}
printf("sum=%d",sum);
}

for (n=1;n<=i;n++)
{
m=1;
while(m<=i)
{a=a*m;
m++;
}
sum=sum+a;
}
改为:

for (n=1;n<=i;n++)
{
a=m=1;

while(m<=i)
{a=a*m;
m++;
}
sum=sum+a;
}

为了使程序可以计算较大的值,建议做如下修改:

int i,m,n,sum=0,a=1;
改为:
int i,n
long int m,sum=0,a=1;

printf("sum=%d",sum);
改为
printf("sum=%ld",sum);

#include<stdio.h>
void main()
{
int i,m,n,sum=0,a=1;
scanf ("%d",&i);
for (n=1;n<=i;n++)
{
a=a*n;
sum=s