标题:循环结构遇到的问题
只看楼主
西部菜鸟
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-30
 问题点数:0 回复次数:4 
循环结构遇到的问题
求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);
}
可是运行结果明显不对。实在发现不了错误!
哪位帮帮我! 给个正确的答案!
搜索更多相关主题的帖子: 结构 
2006-09-28 16:19
西部菜鸟
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-8-30
得分:0 
哪位帮个忙
谢谢了!

2006-09-28 17:04
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
得分:0 

#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);
}


2006-09-28 21:03
ww84020209
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
得分:0 

可能是int的范围不够吧,你换成long 看看.


2006-09-28 21:03
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
以下是引用西部菜鸟在2006-9-28 16:19:59的发言:
求1+2!+3!+4!+.......+10!的和
我写的是:
#include<stdio.h>
void main()
{
int k=1,sum=0,n,j=1;
while(k<=3)
{
j=1;
for(n=1;n<=k;n++)
{
j = j * n;
}
sum = sum + j;
k++;
}
printf("%d\n",sum);
}
可是运行结果明显不对。实在发现不了错误!
哪位帮帮我! 给个正确的答案!

你的程序应该只做到了3!,所以这里不存在范围问题,你的问题主要是每次循环都没有重新给j赋值.所以造成得不到正确的结果.当然你要做到10!那用int肯定是不够的.用long,楼主试试


倚天照海花无数,流水高山心自知。
2006-09-28 22:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-93507-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.773321 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved