| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1744 人关注过本帖
标题:求1!+2!+3!+4!+5!+...+20!,我错在哪里?
只看楼主 加入收藏
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
 问题点数:0 回复次数:29 
求1!+2!+3!+4!+5!+...+20!,我错在哪里?

main()
{int i,j,k=0;
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for(i=0;i<20;i++)
{
a[i+1]=a[i]+a[i+1];

}
for(j=0;j<20;j++)
{
k=k+a[j];
}
printf("\n%ld",k);

getch();

}

请问这个程序有错吗?输出的结果不知道对不对,大家帮忙看看,谢谢了

2007-11-17 12:18
刹那公子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-9-26
收藏
得分:0 
这一段
for(i=0;i<20;i++)
{
a[i+1]=a[i]+a[i+1];

}
应改为
for(i=0;i<20;i++)
{
a[i+1]=a[i]*a[i+1];
}


2007-11-17 12:28
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
以下是引用刹那公子在2007-11-17 12:28:56的发言:
这一段
for(i=0;i<20;i++)
{
a[i+1]=a[i]+a[i+1];

}
应改为
for(i=0;i<20;i++)
{
a[i+1]=a[i]*a[i+1];
}

这样改也不行,第一个循环相当于求了20!,其他的阶乘都没求~


樱花大战,  有爱.
2007-11-17 12:31
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
得分:0 
对呵,写对了抄错了...赫赫,谢谢
2007-11-17 12:31
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
得分:0 

都求了啊,第一个循环完了后
a[20]里面分别就是 1! 2! 3! 4! ...20!我觉得是这样的,你们看看呢?

2007-11-17 12:33
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
看错了!

樱花大战,  有爱.
2007-11-17 12:33
刹那公子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-9-26
收藏
得分:0 

其实求阶乘程序可以这样写
main()
{
int i;
long sum=0,t=1;
for (i=1;i<=20;i++)
{
t=t*i;
sum=sum+t;
}
printf("%ld",sum);
}


2007-11-17 12:34
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
得分:0 
还有就是最后答案到底是多少啊?
2007-11-17 12:35
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
得分:0 

谢谢大家了,找到错误了.
int a数组 该改成 long a数组
不然存不了.

2007-11-17 12:39
熊猫or彦
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-8
收藏
得分:0 
答案是268040729
2007-11-17 12:40
快速回复:求1!+2!+3!+4!+5!+...+20!,我错在哪里?
数据加载中...
 
   



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

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