|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 帮助看看,这个算法对么?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1190
人关注过本帖
标题:
帮助看看,这个算法对么?
只看楼主
加入收藏
wangxy
等 级:
新手上路
帖 子: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
等 级:
论坛游侠
帖 子:29
专家分:100
注 册:2009-9-10
第
2
楼
收藏
得分:0
不对吧if只是判断语句不是循环语句啊
2010-01-18 00:21
举报帖子
使用道具
赠送鲜花
阿偶
等 级:
新手上路
帖 子:11
专家分:0
注 册:2010-1-7
第
3
楼
收藏
得分:0
呵错的改成for(i=1,i<100,i++)
s+=1.0/i*(-1.0^i)
2010-01-18 05:48
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
4
楼
收藏
得分: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
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
5
楼
收藏
得分: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
等 级:
新手上路
帖 子:13
专家分:0
注 册:2010-1-18
第
6
楼
收藏
得分:0
你这样写是不能达到你的目的的。首先,if语句在这里面只是在刚开始的时候用过一次。执行完判断后,后面的{s=1.0/p-1.0/(p+1)+s; p=p++;}就只执行了一遍。所以你这个程序中比没有实现循环。实现循环有3种方式:for(),while(),do{}while();
2010-01-18 13:01
举报帖子
使用道具
赠送鲜花
wangxy
等 级:
新手上路
帖 子:4
专家分:0
注 册:2010-1-17
第
7
楼
收藏
得分: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
等 级:
论坛游民
帖 子:127
专家分:11
注 册:2008-3-1
第
8
楼
收藏
得分: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
等 级:
黑侠
威 望:
1
帖 子:341
专家分:667
注 册:2009-3-25
第
9
楼
收藏
得分:0
goto语句最好不用···
2010-01-23 08:09
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
10
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
11
1/2页
1
2
快速回复:
帮助看看,这个算法对么?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015899 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved