星际的远客 发表于 2023-3-12 17:36:27

关于C语言s1e14动动手第二问的一种解释

两句语句的颠倒造成的结果错误
假设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的值导致错误,
所以错误的结果就是输入的所有数字的和加上最后一个数字
结束{:10_340:}
页: [1]
查看完整版本: 关于C语言s1e14动动手第二问的一种解释