二维数组中鞍点的查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小时内删除。
发表评论