You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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}")

代码逻辑说明

  1. 先处理第一个输入:用第一个有效输入来初始化max_num和min_num,避免用固定值(比如-99)初始化带来的偏差;
  2. 优先判断退出指令:每次输入后先检查是不是-99,是的话直接跳出循环,不会让这个退出值参与最大/最小数的比较;
  3. 边界情况处理:考虑到用户可能一开始就输入-99的情况,给出对应的提示,避免程序报错或输出无意义的结果。

这样修改后,-99就只会作为退出信号,不会干扰你的最大、最小数计算啦~

内容的提问来源于stack exchange,提问作者leedah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:20:50