|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 想处理一个数学问题,部知道那步错了?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1036
人关注过本帖
标题:
想处理一个数学问题,部知道那步错了?
只看楼主
加入收藏
fenkyer
来 自:广东省广州市
等 级:
论坛游民
帖 子:39
专家分:13
注 册:2007-7-8
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:22
想处理一个数学问题,部知道那步错了?
main()
{
int sigh=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ sigh= -sigh;
term= sigh/ deno;
sum=sum+term;
sigh=sigh+1;
deno=deno+1;
}
printf("%f",sum);
getch();
}
是要计算1-(1/2)+(2/3)-(3/4).....-(99/100)的值
搜索更多相关主题的帖子:
数学
2012-03-19 14:29
举报帖子
使用道具
赠送鲜花
fenkyer
来 自:广东省广州市
等 级:
论坛游民
帖 子:39
专家分:13
注 册:2007-7-8
第
2
楼
收藏
得分:0
输出的是负数,可按计算应该是正数,而且应该是越来越大的才对啊?不知道是哪一步错了。
年年月月日日,生生学学实实!
2012-03-19 14:43
举报帖子
使用道具
赠送鲜花
fenkyer
来 自:广东省广州市
等 级:
论坛游民
帖 子:39
专家分:13
注 册:2007-7-8
第
3
楼
收藏
得分:0
怎么有人看却没人回呢?
年年月月日日,生生学学实实!
2012-03-19 14:50
举报帖子
使用道具
赠送鲜花
不哭5死神
等 级:
论坛游民
帖 子:42
专家分:74
注 册:2011-4-11
第
4
楼
收藏
得分:2
{ sigh= -sigh;
sigh=sigh+1;
}这一步错了。
当deno=2.0时,循环为
{ sigh= -1;
term= -1/ 2.0;
sum=1.0+(-1/ 2.0);
sigh=-1+1=0;
deno=2.0+1;
}
明白了吧。
2012-03-19 14:57
举报帖子
使用道具
赠送鲜花
不哭5死神
等 级:
论坛游民
帖 子:42
专家分:74
注 册:2011-4-11
第
5
楼
收藏
得分:2
改正后的函数体
{
int sigh=1,s=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ s= -s;
term= s*sigh/ deno;
sigh=sigh+1;
sum=sum+term;
deno=deno+1;
}
printf("%f",sum);
getch();
}
2012-03-19 15:03
举报帖子
使用道具
赠送鲜花
w339735126
等 级:
论坛游民
帖 子:18
专家分:24
注 册:2012-3-15
第
6
楼
收藏
得分:1
问题出现在sign上。
while循环;你看2个就可以知道错哪里了。
第一次循环deno=2,deno<=100,进入循环。接着,sign=-sign,此时sign=-1。然后
sign=sign+1,也就是此时sign=0,sum=sum+term;(sum=1-(1/2))。
第二次循环直接就是sign=0了吧~!接着sign=sign+1;
第三次循环和第一次一样;又是sign=-1;
。
。
。
所以它就是个负数了。
2012-03-19 15:04
举报帖子
使用道具
赠送鲜花
zjxssz
等 级:
新手上路
帖 子:6
专家分:1
注 册:2012-1-24
第
7
楼
收藏
得分:1
sigh错误
2012-03-19 15:04
举报帖子
使用道具
赠送鲜花
dc__sky
等 级:
论坛游侠
帖 子:31
专家分:117
注 册:2012-3-13
第
8
楼
收藏
得分:2
main()
{
int sigh=1;
int i = 1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ sigh= -sigh;
term= sigh*i/ deno;
sum=sum+term;
i=i+1; //第一次sigh=sigh+1
= 0了
deno=deno+1;
}
printf("%f",sum);
getch();
}
2012-03-19 15:05
举报帖子
使用道具
赠送鲜花
wsws23
等 级:
论坛游侠
帖 子:105
专家分:107
注 册:2012-3-13
第
9
楼
收藏
得分:1
#include <stdio.h>
main()
{
int sigh=1,i=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{
term= (float)(sigh/ deno);
sigh=sigh*(-1)^i;
sum=sum+term;
sigh=sigh+1;
deno=deno+1;
i++;
}
printf("%f",sum);
}
2012-03-19 15:06
举报帖子
使用道具
赠送鲜花
dc__sky
等 级:
论坛游侠
帖 子:31
专家分:117
注 册:2012-3-13
第
10
楼
收藏
得分:1
竟然慢了一步呀!呵呵~~~
2012-03-19 15:10
举报帖子
使用道具
赠送鲜花
23
1/3页
1
2
3
快速回复:
想处理一个数学问题,部知道那步错了?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.021583 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved