一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 2105|回复: 19

[其他综合] 请教c++语言问题

[复制链接]
发表于 2014-4-18 09:58 | 显示全部楼层 |阅读模式
初学单片机,发现要学汇编,再发现要学c语言,于是就开始看c++语言,于是发现要学的东西愈来愈多。刚开始学,发现一个问题看不懂,就想请大家

帮忙解释一下。
书上原题是求1-1/2+1/3-1/4+……1/99-1/100.
s1:sign=1;                       //当前项值是1
s2:sum=1;                       //赋值1
s3:deno=2                        //第二项分母2
s4:sing=(-1)*sing             //分子为-1
s5:term=sing*(1/deno)     //第二项-1/2
s6:sum=sum+term           //1-1/2赋值sum
s7:deno=deno+1             //分母+1,
s8:if deno≤100,返回s4;否则算法结束。
s7的分母加1,即第三项分母2+1,然后返回s4,重复,可是第三项分子是+1,
即第三项是+1/3,按照我的理解,程序第三项就变成了-1/3.可是书上就是这么解释的。所以我就
解释不通了,
 楼主| 发表于 2014-4-18 10:00 | 显示全部楼层
这是c++ 的算法步骤
回复

使用道具 举报

发表于 2014-4-18 10:46 | 显示全部楼层
这个完全是数学算法  或者根据算式找规律的数学问题,关C++毛事?

你的理解(大脑跟踪失误)有误,第一次S6时是1+(-1/2),第二次S6时是1+(-1/2)+(1/3),第三次1(-1/2)+(1/3)+(-1/4)...
你看成-1/3要么把第三次漏了*-1,要么就是把第4次当成第三次了

再说一遍,这个关C++啥事啊?
回复

使用道具 举报

发表于 2014-4-18 10:49 | 显示全部楼层
s3:deno=2  应该是 s3:deno=1
回复

使用道具 举报

发表于 2014-4-18 10:51 | 显示全部楼层
单片机不需要那么多。
回复

使用道具 举报

发表于 2014-4-18 10:55 | 显示全部楼层
本来想学,一看还要学数学。。。。初中生飘过

点评

xwj
这题,初中生绝对会解。其实,倒是设计程序的人傻帽了,或者说出题的傻帽。  发表于 2014-4-18 11:19
回复

使用道具 举报

 楼主| 发表于 2014-4-18 11:37 | 显示全部楼层
其实这就是书上的解释,所以有的看不懂。书是谭浩强的《c程序设计-第四版》,然后书中使用的是visual c++..上面的是算法步骤。他的解释是大概是
先赋一个值1.然后sum累加,就是第一项。
第二项分母值位2,分子值赋-1,
第一第二项累加至sum,1-1/2
s7:f分母累加1
分母≤100,返回s4.继续。
(…执行s8,由于denon≤100,故返回s4,sige的值改为1,在s5中求出term的值为1/3.在s6中将1/3累加到sum中。然后s7再史分母变为4.…),以上括号内是书上原文。
我的理解是;先给个1,再给个分母2,给个分子-1,相加记在sum,再分母累加1,判定≤100,返回给个分子,可是上一个分子给定-1,为什么循环后就是+1了。可能我转不过弯来,请大家说说。

点评

xwj
s4:sing=(-1)*sing //分子为-1 ——被你吃了?  发表于 2014-4-18 11:56
回复

使用道具 举报

 楼主| 发表于 2014-4-18 11:39 | 显示全部楼层
icewind 发表于 2014-4-18 10:49
s3:deno=2  应该是 s3:deno=1

书上的原话      s3:deno=2
回复

使用道具 举报

 楼主| 发表于 2014-4-18 11:46 | 显示全部楼层
zjo007 发表于 2014-4-18 10:55
本来想学,一看还要学数学。。。。初中生飘过

这个题目其实不难,但是c语言它要算法或者说是流程,我从来没学过。所以就不懂,可能说穿了就原来如此。
回复

使用道具 举报

发表于 2014-4-18 11:48 | 显示全部楼层
sing=(-1)*sing
如果你能理解这条语句,就会明白了。。。
这条语句实际上可以理解为
temp =(-1)*sing;
sing = temp;
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-31 18:29 , Processed in 0.040624 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表