C语言 找出一个4x4二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小(不会出现重复数字的情况)。可能没有鞍点。 输入样例: 12 15 17 23 16 34 24 39 14 46 31 42 11 29 33 25 输出样例:鞍点:23
时间: 2024-05-01 10:24:13 浏览: 83
以下是一个可能的 C 语言实现:
```c
#include <stdio.h>
int main() {
int a[4][4];
int i, j;
// 读入数组
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &a[i][j]);
}
}
// 查找鞍点
for (i = 0; i < 4; i++) {
int max_in_row = a[i][0]; // 当前行的最大值
int max_j = 0; // 当前行最大值的列号
for (j = 1; j < 4; j++) {
if (a[i][j] > max_in_row) {
max_in_row = a[i][j];
max_j = j;
}
}
int min_in_col = a[0][max_j]; // 当前列的最小值
for (j = 1; j < 4; j++) {
if (a[j][max_j] < min_in_col) {
min_in_col = a[j][max_j];
}
}
if (max_in_row == min_in_col) {
printf("鞍点:%d\n", max_in_row);
return 0;
}
}
printf("没有鞍点。\n");
return 0;
}
```
该程序首先读入一个 $4\times 4$ 的二维数组,并在接下来的两个循环中分别找出每一行的最大值和每一列的最小值,然后判断是否有元素同时是其所在行的最大值和所在列的最小值,如果有则输出该元素作为鞍点。如果整个数组都没有鞍点,则输出“没有鞍点”。
阅读全文