题解 | #最大的两个数#

最大的两个数

https://www.nowcoder.com/practice/7385949943264a9fa4348cbd43e6e00c

#include <iostream>
using namespace std;

int main() {
    int matrix[4][5];
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 5; j++)
            cin >> matrix[i][j];

    int ans[2][5] = {0};
    for (int j = 0; j < 5; j++) {
        int q = 0; // 用来控制ans的输入列数
        for (int i = 0; i < 4; i++) {
            int count = 0, t = 3; // count:计数器,统计当前值大于几个同列其他值;t:和另外‘3’个值比较
            while (t--)
                if (matrix[i][j] >= matrix[(i + 1 + t) % 4][j]) // 比较同一列,选出最大的两个放入ans
                    count++;
            if (count >= 2) {
                if (q >= 2 && ans[1][j] < matrix[i][j]) // 如果出现相同值,q会>=2,此时若后出现的值大于上一个保存到ans的值,则更改ans,否则不变
                    ans[1][j] = matrix[i][j];
                ans[q][j] = matrix[i][j];
                q++;
            }
        }
    }

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 5; j++)
            cout << ans[i][j] << " ";
        cout << endl;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-18 11:21
优秀的大熊猫在okr...:叫你朋友入职保安,你再去送外卖,一个从商,一个从政,你们两联手无敌了,睁开你的眼睛看看,现在是谁说了算(校长在背后瑟瑟发抖)
选实习,你更看重哪方面?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务