解题思路:

注意事项:

参考代码:

#include <stdio.h>
#include <math.h>

int main() {
    int arr[5][5];
    int i, j, k;

    // 读取输入矩阵
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
            scanf("%d", &arr[i][j]);
        }
    }

    int found = 0; // 用于标记是否找到鞍点,默认为0

    // 遍历矩阵中的每个元素
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
            int row_max = arr[i][0]; // 初始化当前行的最大值为第一个元素
            int col_min = arr[0][j]; // 初始化当前列的最小值为第一个元素

            // 寻找当前行的最大值
            for (k = 0; k < 5; k++) {
                if (arr[i][k] > row_max) {
                    row_max = arr[i][k];
                }
            }

            // 寻找当前列的最小值
            for (k = 0; k < 5; k++) {
                if (arr[k][j] < col_min) {
                    col_min = arr[k][j];
                }
            }

            // 如果当前元素同时满足两个条件,则是鞍点,输出位置和值
            if (arr[i][j] == row_max && arr[i][j] == col_min) {
                printf("%d %d %d", i + 1, j + 1, arr[i][j]);
                found = 1; // 找到鞍点,将found标记为1
            }
        }
    }

    // 如果没有找到鞍点,输出 "not found"
    if (!found) {
        printf("not found\n");
    }

    return 0;
}


点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论