c语言找出一个4x4二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小(不会出现重复数字的情况)。可能没有鞍点。 输入样例: 12 15 17 23 16 34 24 39 14 46 31 42 11 29 33 25 输出样例:鞍点:23
时间: 2023-06-12 21:06:05 浏览: 72
下面是一个C语言的实现,具体思路是先出每一行的最大值和每一的最小值,然后遍历整个,找到同时满足该位置上的元素在该行最大,在该列最小的元素即可。
```
#include <stdio.h>
int main()
{
int arr[4][4];
int i, j, k, flag;
printf("请输入一个4x4的二维数组:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &arr[i][j]);
}
}
for (i = 0; i < 4; i++) {
int max_row = arr[i][0];
int max_col = arr[0][i];
for (j = 1; j < 4; j++) {
if (arr[i][j] > max_row) {
max_row = arr[i][j];
}
if (arr[j][i] < max_col) {
max_col = arr[j][i];
}
}
for (j = 0; j < 4; j++) {
if (arr[i][j] == max_row && arr[j][i] == max_col) {
printf("鞍点:%d\n", arr[i][j]);
flag = 1;
}
}
}
if (!flag) {
printf("没有鞍点\n");
}
return 0;
}
```
阅读全文