admin 管理员组

文章数量: 1087135


2024年4月21日发(作者:优的组词)

二维数组中鞍点的查找C语言程序.doc

鞍点是指矩阵中的某个元素,既是所在行的最大值,又是所在列的最小值,通俗一点,

就像是一个山峰的鞍部,既高又低。对于一个二维数组,我们可以用C语言编写程序来查

找其中的鞍点。下面是一个示例程序:

#include

#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) {

// 判断该位置是否为所在列的最大值

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) = %dn", i, k, arr[i][k]);

}

}

}

}

return flag; // 返回是否找到鞍点

}

该程序定义了一个函数findSaddlePoint,它接受一个二维数组作为参数,返回值为1

表示找到了鞍点,返回值为0则表示没有找到。首先对每一行进行遍历,查找最小值,然

后在该行中查找最小值的位置,进一步判断该位置是否为所在列的最大值,如果是则找到

鞍点,输出其位置和值。程序主函数中调用findSaddlePoint函数,并根据返回值输出查

找结果。

该程序的运行结果如下:

Saddle point: (1, 3) = 8

No saddle point found.

说明该二维数组中存在一个鞍点,其位置为(1, 3),值为8。


本文标签: 鞍点 程序 位置 数组 函数