循环结构遇到的问题
求1+2!+3!+4!+.......+10!的和我写的是:
#include<stdio.h>
void main()
{
int k=1,sum=0,n,j=1;
while(k<=3)
{
for(n=1;n<=k;n++)
{
j = j * n;
}
sum = sum + j;
k++;
}
printf("%d\n",sum);
}
可是运行结果明显不对。实在发现不了错误!
哪位帮帮我! 给个正确的答案!
#include<stdio.h>
void main()
{
int k=1,sum=0,n,j=1;
while(k<=10)
{
for(n=1;n<=k;n++)
{
j = j * n;
}
sum = sum + j;
j=1;
k++;
}
printf("%d\n",sum);
}
#include<stdio.h>
int fa(int a);
main()
{
int i,j;
int long SUM=0;
for(i=1;i<=10;i++)
SUM=SUM+fa(i);
printf("%ld",SUM);
}
fa(int a)
{
int sum=1,i;
for(i=1;i<=a;i++)
sum=sum*i;
return(sum);
}
你的程序应该只做到了3!,所以这里不存在范围问题,你的问题主要是每次循环都没有重新给j赋值.所以造成得不到正确的结果.当然你要做到10!那用int肯定是不够的.用long,楼主试试