C++用-99退出循环时,最值统计出现最小数错误的问题
解决你的最小数总是显示-99的问题
嘿,我懂你碰到的麻烦了——那个用来退出的-99老是霸占最小数的位置,对吧?这问题其实很好解决,根源就是你可能把退出指令也当成普通输入来参与最小数的计算了,或者初始化最小值的时候就用了-99,导致它最后总能“胜出”。
问题分析
通常出现这种情况有两种原因:
- 你初始化
min_num的时候直接设成了-99,不管后面输入什么数,这个初始值都会拉低最终结果; - 你没有在输入-99的时候跳过数值比较,把退出指令也算进了最小数的判断里。
修正后的代码示例(以Python为例)
# 先获取第一个输入,避免初始值错误 num = int(input("请输入整数(输入-99退出):")) # 处理用户一开始就输入-99的情况 if num == -99: print("没有输入任何有效数字哦!") else: # 用第一个有效输入初始化最大、最小值 max_num = num min_num = num # 开始循环接收后续输入 while True: num = int(input("请输入整数(输入-99退出):")) # 先判断是否退出,是的话直接跳出循环,不参与数值比较 if num == -99: break # 更新最大值 if num > max_num: max_num = num # 更新最小值 if num < min_num: min_num = num # 输出结果 print(f"输入的最大数:{max_num}") print(f"输入的最小数:{min_num}")
代码逻辑说明
- 先处理第一个输入:用第一个有效输入来初始化
max_num和min_num,避免用固定值(比如-99)初始化带来的偏差; - 优先判断退出指令:每次输入后先检查是不是-99,是的话直接跳出循环,不会让这个退出值参与最大/最小数的比较;
- 边界情况处理:考虑到用户可能一开始就输入-99的情况,给出对应的提示,避免程序报错或输出无意义的结果。
这样修改后,-99就只会作为退出信号,不会干扰你的最大、最小数计算啦~
内容的提问来源于stack exchange,提问作者leedah
相关产品推荐
相关产品推荐

