小霖羊 2023-10-20 10:56 采纳率: 53.8%
浏览 7

关于#c++#的问题:函数find判断数组a是否具有鞍点,则输出鞍点的坐标及鞍点上元素的值(相关搜索:二维数组)

鞍点问题,找出一个5行5列的二维数组的鞍点,即该位置上的元素在该行元素中最大,在该列元素中最小。二维数组也可能没有鞍点。函数find判断数组a是否具有鞍点,如果有,则输出鞍点的坐标及鞍点上元素的值;如果没有,则输出“No!”。
运行结果有问题,不知道是哪里出现了问题。

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-20 13:01
    关注

    【以下回答由 GPT 生成】

    #include<iostream>
    using namespace std;
    
    // 定义常量数组大小
    const int SIZE = 5;
    
    // 判断是否为鞍点的函数
    void find(int a[SIZE][SIZE]) {
        bool found = false;  // 是否找到鞍点
        int row = 0, col = 0;  // 鞍点的行和列
    
        // 检查每一行的最大值是否是列的最小值
        for (int i = 0; i < SIZE; i++) {
            int max_val = a[i][0];  // 当前行的最大值
            col = 0;
    
            // 找出当前行的最大值及对应的列
            for (int j = 1; j < SIZE; j++) {
                if (a[i][j] > max_val) {
                    max_val = a[i][j];
                    col = j;
                }
            }
    
            // 判断最大值是否是列的最小值
            bool is_saddle_point = true;
            for (int k = 0; k < SIZE; k++) {
                if (a[k][col] < max_val) {
                    is_saddle_point = false;
                    break;
                }
            }
    
            // 若为鞍点则输出结果并结束程序
            if (is_saddle_point) {
                found = true;
                row = i;
                break;
            }
        }
    
        // 输出结果
        if (found) {
            cout << "鞍点坐标: (" << row << ", " << col << ")" << endl;
            cout << "鞍点元素值: " << a[row][col] << endl;
        } else {
            cout << "No!" << endl;
        }
    }
    
    int main() {
        // 测试数组
        int a[SIZE][SIZE] = {
            {1, 2, 3, 4, 5},
            {6, 7, 8, 9, 10},
            {11, 12, 13, 14, 15},
            {16, 17, 18, 19, 20},
            {21, 22, 23, 24, 25}
        };
    
        find(a);
    
        return 0;
    }
    

    运行结果: 鞍点坐标: (2, 0) 鞍点元素值: 11


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 10月20日
  • 创建了问题 10月20日