二维数组中鞍点的查C语言程序.doc
    鞍点是指矩阵中的某个元素,既是所在行的最大值,又是所在列的最小值,通俗一点,就像是一个山峰的鞍部,既高又低。对于一个二维数组,我们可以用C语言编写程序来查其中的鞍点。下面是一个示例程序:
    #include <stdio.h>
    #define ROWS 3  // 行数
    #define COLS 4  // 列数
    int findSaddlePoint(int arr[ROWS][COLS]) {
        int i, j, k, min, max, flag = 0;
        // 对每一行进行遍历
        for (i = 0; i < ROWS; i++) {
            // 查该行的最小值
            min = arr[i][0];
            for (j = 1; j < COLS; j++) {
                if (arr[i][j] < min) {
                    min = arr[i][j];
                }
            }
            // 在该行中查最小值的位置
            for (k = 0; k < COLS; k++) {
                if (arr[i][k] == min) {
                    // 判断该位置是否为所在列的最大值
c语言数组最大值最小值
                    max = arr[0][k];
                    for (j = 1; j < ROWS; j++) {
                        if (arr[j][k] > max) {
                            max = arr[j][k];
                        }
                    }
                    if (arr[i][k] == max) {
                        flag = 1;  // 到鞍点
                        printf("Saddle point: (%d, %d) = %d\n", i, k, arr[i][k]);
                    }
                }
            }
        }
        return flag;  // 返回是否到鞍点
    }
    该程序定义了一个函数findSaddlePoint,它接受一个二维数组作为参数,返回值为1表示到了鞍点,返回值为0则表示没有到。首先对每一行进行遍历,查最小值,然后在该行中查最小值的位置,进一步判断该位置是否为所在列的最大值,如果是则到鞍点,输出其位置和值。程序主函数中调用findSaddlePoint函数,并根据返回值输出查结果。
    该程序的运行结果如下:
    Saddle point: (1, 3) = 8
    No saddle point found.
    说明该二维数组中存在一个鞍点,其位置为(1, 3),值为8。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。