鱼C论坛

 找回密码
 立即注册
查看: 1232|回复: 0

[技术交流] 关于C语言s1e14动动手第二问的一种解释

[复制链接]
发表于 2023-3-12 17:36:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
两句语句的颠倒造成的结果错误
假设num只输入1个值2,接下来输入字母q退出循环
没有颠倒时第一个do循环sum等于0,(一开始定义两个数都为0),
输入2之后进入第二轮循环,此时sum等于2,读取num失败(q不能被读取),退出当前循环,打印结果为2,这是正确的结果
颠倒后第一个循环sum就等于2了,因为num等于2先被读取了,
第二个循环读取失败,num的值仍然为2,sum就等于4,然后才退出循环。

所以颠倒之后错误的点在与先读取输入的num的值,导致前面num = 0这条语句失去作用,第一个循环sum就加了一遍,到要退出的那个循环sum又加了最后一个输入num的值导致错误,
所以错误的结果就是输入的所有数字的和加上最后一个数字
结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 21:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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