| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:[求助]请看看;谢谢;
只看楼主 加入收藏
vah
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-4-1
收藏
 问题点数:0 回复次数:5 
[求助]请看看;谢谢;

#include"stdio.h"

main()

{ int i;

float sum;

for(i=1,sum=0;i<=20;i++)

{sum+=(float)(i)/(++i);}

printf("%d",sum);

}这个是求1/2 2/3 3/4 。。。。。的和的题。 请问错在哪 啊??? 谢谢了

2005-04-07 17:11
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
最后结果也是单精度数,所以不应该使用 %d 来输出 sum 的;

欢迎加入 MVC 技术讨论群(新群:90093426)
2005-04-07 17:29
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 

for(i=1,sum=0;i<=20;i++)

{sum+=(float)(i)/(++i);} 上面所写的程序是不能实现题目要求的结果的; 原因在于 i++ 和 ++i; i已经在循环体中加1,但是循环中同时也将i做为循环步长,也就是说,每循环一次,i事实上是被加了2。 因此,上面的程序事实上就是实现如下的式子: 1/2+3/4+5/6+7/8+9/10+11/12+13/14+15/16+17/18+19/20 您可以使用下面的程序来验证一下是否真的如此: for(i=1,sum=0;i<=20;i++) { printf("%d",i); sum+=(float)(i)/(++i); printf("/%d\n",i); }


欢迎加入 MVC 技术讨论群(新群:90093426)
2005-04-07 17:42
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

//程序可以修改如下: //看看把 //~~~ #include <stdio.h>

//这个是求1/2 2/3 3/4 。。。。。的和的题 void main() { int i; float div; float sum; for(i=1,sum=0;i<=2;i++) { div = i+1 ; sum += i/div; } printf("%f\n",sum); }


Every thing is possible.
2005-04-07 18:17
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
收藏
得分:0 

#include"stdio.h"

main()

{ int i;

float sum;

for(i=1,sum=0;i<=20;i++) { printf("i=%d\n",i); sum+=(float)i/(i+1);} //只要改这就行了。

printf("%f",sum); getch(); }

2005-04-08 11:49
vah
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-4-1
收藏
得分:0 
谢谢 各位的帮助啊,,,,,,

2005-04-08 21:26
快速回复:[求助]请看看;谢谢;
数据加载中...
 
   



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

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