编写一个c语言程序,找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小,可能没有鞍点
时间: 2023-11-06 17:04:48 浏览: 81
下面是一个示例程序,实现了在一个4x4的二维数组中找出鞍点的功能:
```c
#include <stdio.h>
#define ROWS 4
#define COLS 4
int main() {
int arr[ROWS][COLS] = {
{10, 13, 12, 14},
{11, 12, 15, 17},
{20, 21, 23, 22},
{18, 16, 14, 11}
};
int i, j, k, max, min, row, col, found = 0;
for (i = 0; i < ROWS; i++) {
max = arr[i][0];
col = 0;
for (j = 1; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
col = j;
}
}
min = arr[0][col];
row = 0;
for (k = 1; k < ROWS; k++) {
if (arr[k][col] < min) {
min = arr[k][col];
row = k;
}
}
if (max == min) {
printf("鞍点为 (%d, %d),值为 %d\n", row, col, max);
found = 1;
}
}
if (!found) {
printf("没有鞍点\n");
}
return 0;
}
```
程序先定义一个4x4的二维数组,并初始化为一些随机的数。然后,程序使用两个循环分别找出每一行的最大值和每一列的最小值,并检查是否有相等的值。如果有,程序打印出该位置的行和列索引,以及该位置上的值。如果没有鞍点,则程序打印出一条相应的消息。
阅读全文