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

用C语言编程计算

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

我写的,但是计算结果不正确,请高手指点
搜索更多相关主题的帖子: 算法 
2010-01-17 22:30
awa2004
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:29
专家分:100
注 册:2009-9-10
收藏
得分:0 
不对吧if只是判断语句不是循环语句啊
2010-01-18 00:21
阿偶
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2010-1-7
收藏
得分:0 
呵错的改成for(i=1,i<100,i++)  s+=1.0/i*(-1.0^i)
2010-01-18 05:48
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
main()
{
int p=1;
float s=0.0;
if (p<100) {s=1.0/p-1.0/(p+1)+s; p=p++;}           
else printf("sum=%f",s);

}
按照你的程序里来执行   p=1;   满足(p<100)条件执行语句s=1.0/p-1.0/(p+1)+s; p=p++;s=1.0/1-1.0/(1+1)+0.0       然后结束               
2010-01-18 12:25
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
#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);
}


以上两种算法都行
2010-01-18 12:28
rock10822
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-1-18
收藏
得分:0 
你这样写是不能达到你的目的的。首先,if语句在这里面只是在刚开始的时候用过一次。执行完判断后,后面的{s=1.0/p-1.0/(p+1)+s; p=p++;}就只执行了一遍。所以你这个程序中比没有实现循环。实现循环有3种方式:for(),while(),do{}while();
2010-01-18 13:01
wangxy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-17
收藏
得分:0 
谢谢大家,我已经修改了,但是计算的结果和大家的不一样啊!

main()
{
int p=1;
float s=0.0;
loop:if (p<100) {s=1.0/p-1.0/(p+1)+s; p++; goto loop;}
else printf("sum=%f",s);


}

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


}

2010-01-19 23:33
gongdian
Rank: 2
等 级:论坛游民
帖 子:127
专家分:11
注 册:2008-3-1
收藏
得分:0 
int i;
float s=0,f;
for(i=1;i<=100;i++)
{
    f=1/i;
    if(i%2==0)
    s+=f;
    else         
    s-=f;

}
2010-01-22 22:12
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
goto语句最好不用···
2010-01-23 08:09
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
两种算法都错了          按照你的程序来执行:第一次循环P=1;s=1.0/1-1.0/(1+1)+0;在P++ P=2 在执行第二次循环s=1.0/2-1.0/(2+1)+s     一直执行下去就成了1-1/2+1/2-1/3+1/3-1/4...  和题目算法不一样
2010-01-23 14:47
快速回复:帮助看看,这个算法对么?
数据加载中...
 
   



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

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