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

提取数字序列最小值与最大值时最大值存储异常问题求解

问题原因
  • 判断对象错误:更新最小值时应当和已存储的最小值变量对比,原代码错误地和最大值变量e做对比。
  • 分支条件完全重复:两个判断分支的触发条件均为m < e,else if分支永远不会被触发,最大值变量e从未得到更新,自然无法正常保存数值。
  • 最大值判断逻辑错误:更新最大值需要判断当前输入值是否大于已存储的最大值,原代码误用了小于判断。
  • 分支结构错误:最小值和最大值的判断应当用独立的if分支,不要用else if,否则当输入值同时满足两个更新条件时(比如首次输入的数值),会跳过第二个判断逻辑。
修正后参考代码

首先要确保变量初始值设置正确,避免初始值干扰正常判断:

#include <climits> // 引入该头文件使用INT_MAX、INT_MIN宏
// 变量初始化:a存最小值,初始设为int类型最大上限;e存最大值,初始设为int类型最小下限
int a = INT_MAX;
int e = INT_MIN;
int m, mesos;
// mesos赋值逻辑和你的原有逻辑保持一致即可
for(int i=0; i<mesos; i++){
    cin >> m;
    if(m < a) a = m;
    if(m > e) e = m;
}
// 最大最小值差值为 e - a

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:36:03