| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:为什么计算的结果都不一样?
只看楼主 加入收藏
wangxy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-17
收藏
 问题点数:0 回复次数:3 
为什么计算的结果都不一样?
1-1/2+1/3-1/4+1/5-1/6+。。。+1/99-1/100
用c语言程序表达

我开始计算的方法不一样,在大家的帮助下,我进行了修改
这是最新的程序

main()
{
int p=1,q=1;
float s=0.0;
for(;p<100;p++){ s=1.0/p*q+s;q=q*(-1.0);}
printf("sum=%f",s);
}

计算结果是0.698172

——————————————————————————————————
而别人的程序是

#include "stdio.h"
void main()
{
int i;
float sum=0.0;
for(i=1;i<=100;i++)
{
if(i%2==0)sum-=1.0/i;
else sum+=1.0/i;
}
printf("1-1/2+1/3-1/4+1/5……-1/99+1/100=%f",sum);
}

————————————————————————————
#include<stdio.h>
void main()
{
int f,i,d;
float t,sum;
sum=1;
d=1;
f=1;
t=1.0/f;
for(i=2;i<=100;i++)
{
d=(-1)*d;
f++;
t=d*(1.0/f);
sum=sum+t;
}
printf("sum=%f",sum);
}
————————————————————————————

以上两种算法都行

两个程序的结果是0.688172

谁对,为什么?


搜索更多相关主题的帖子: 结果 
2010-01-20 22:43
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
for(;p<100;p++){ s=1.0/p*q+s;q=q*(-1.0);}
这里缺了一个-1/100

身体是玩命的本钱
2010-01-21 00:12
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
不要写那么长的表达式····改改吧·
2010-01-21 08:37
wangxy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-17
收藏
得分:0 
ok,谢谢
2010-01-21 09:46
快速回复:为什么计算的结果都不一样?
数据加载中...
 
   



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

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