用C语言编写程序,找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。
时间: 2023-07-16 07:15:58 浏览: 105
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小 也可能没有鞍点
下面是用C语言编写的程序,可以找出一个二维数组中的鞍点:
```c
#include <stdio.h>
#define ROW 3
#define COL 4
int main()
{
int arr[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int i, j, max, min, flag;
for (i = 0; i < ROW; i++) {
max = arr[i][0];
for (j = 1; j < COL; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
for (j = 0; j < COL; j++) {
if (arr[i][j] == max) {
min = arr[0][j];
for (int k = 1; k < ROW; k++) {
if (arr[k][j] < min) {
min = arr[k][j];
}
}
if (arr[i][j] == min) {
printf("鞍点为:%d,坐标为(%d,%d)\n", arr[i][j], i, j);
flag = 1;
}
}
}
}
if (!flag) {
printf("没有鞍点\n");
}
return 0;
}
```
这个程序中,我们首先定义了一个3行4列的二维数组,然后使用两个循环分别遍历每一行和每一列,找出该行中的最大值和该列中的最小值。然后,再次遍历每一行,如果该行中的某个元素等于该行中的最大值,并且该元素在该列中也是最小值,那么就找到了一个鞍点。如果没有找到任何一个鞍点,就输出“没有鞍点”。
阅读全文