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

如何用C++算术运算与if语句找出4个整数中的最大奇数

找4个整数中最大奇数的问题修复

问题分析

你写的代码逻辑缺陷在于:判断某个奇数为最大值时,要求它必须比**所有四个数(包括偶数)**都大。比如输入7、9、10、5时,9是最大奇数,但因为10是偶数且比9大,判断9的条件int2>int3(9>10)不成立,导致这个if分支不会执行,自然无法输出正确结果。

修复思路

我们需要调整判断逻辑:对于每个候选奇数,只要它比所有其他奇数都大即可,不需要和偶数比大小。换句话说,判断某个数是最大奇数的条件是:

  • 该数本身是奇数;
  • 对于其他每一个数,要么该数比它大,要么那个数是偶数(偶数不参与最大奇数的竞争)。

修改后的代码

#include <iostream>
using namespace std;

// 判断是否为奇数(返回true表示是奇数)
bool isOdd(int x){
    return x % 2 != 0;
}

int main(){
    int int1, int2, int3, int4;
    cout << "Enter 4 integers" << endl;
    cin >> int1 >> int2 >> int3 >> int4;

    // 判断int1是否是最大奇数
    if(isOdd(int1)){
        bool isMax = true;
        if(isOdd(int2) && int2 > int1) isMax = false;
        if(isOdd(int3) && int3 > int1) isMax = false;
        if(isOdd(int4) && int4 > int1) isMax = false;
        if(isMax) cout << "The largest odd number is " << int1 << endl;
    }

    // 判断int2是否是最大奇数
    if(isOdd(int2)){
        bool isMax = true;
        if(isOdd(int1) && int1 > int2) isMax = false;
        if(isOdd(int3) && int3 > int2) isMax = false;
        if(isOdd(int4) && int4 > int2) isMax = false;
        if(isMax) cout << "The largest odd number is " << int2 << endl;
    }

    // 判断int3是否是最大奇数
    if(isOdd(int3)){
        bool isMax = true;
        if(isOdd(int1) && int1 > int3) isMax = false;
        if(isOdd(int2) && int2 > int3) isMax = false;
        if(isOdd(int4) && int4 > int3) isMax = false;
        if(isMax) cout << "The largest odd number is " << int3 << endl;
    }

    // 判断int4是否是最大奇数
    if(isOdd(int4)){
        bool isMax = true;
        if(isOdd(int1) && int1 > int4) isMax = false;
        if(isOdd(int2) && int2 > int4) isMax = false;
        if(isOdd(int3) && int3 > int4) isMax = false;
        if(isMax) cout << "The largest odd number is " << int4 << endl;
    }

    return 0;
}

额外优化说明

  1. 把函数evenor改名为isOdd,语义更清晰,同时简化了返回逻辑(直接返回x%2!=0);
  2. 调整了代码结构,将头文件引用放在最前面,符合C++代码规范;
  3. 每个奇数的判断逻辑拆分为先标记为最大,再逐一和其他奇数比较,不符合就取消标记,逻辑更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:46:30