C语言实现二维数组鞍点查找算法
以下是一个示例代码,实现了找出二维数组中的鞍点:
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int arr[ROWS][COLS] = {
{3, 7, 9},
{2, 6, 8},
{5, 1, 4}
};
int i, j, k, max, min, saddle = 0;
for (i = 0; i < ROWS; i++) {
max = arr[i][0];
k = 0;
for (j = 1; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
k = j;
}
}
min = arr[0][k];
for (j = 1; j < ROWS; j++) {
if (arr[j][k] < min) {
min = arr[j][k];
}
}
if (max == min) {
printf('Saddle point found at (%d, %d): %d\n', i, k, max);
saddle = 1;
}
}
if (!saddle) {
printf('No saddle point found.\n');
}
return 0;
}
该代码首先定义了一个3x3的二维数组,并遍历每一行。对于每一行,它找出该行中的最大值,以及该最大值在该行中的列数。接着,它遍历该列,找出该列中的最小值。如果该最小值恰好等于该行中的最大值,则说明该位置是一个鞍点,输出该位置的坐标和值。如果遍历完整个二维数组都没有找到鞍点,则输出提示信息。
原文地址: https://www.cveoy.top/t/topic/oq1F 著作权归作者所有。请勿转载和采集!