C语言一个简单的小问题(新手发问)
来源:百度知道 编辑:UC知道 时间:2024/09/21 11:27:25
求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);
}
我用下面的程序,调试什么都没错,就得不到正确结果
问高手怎么修改才正确
#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