找出二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也有可能没有鞍点。
输入格式:
输入4行4列的整型二维数组。
输出格式:
若有鞍点,输入鞍点以及其位置;若没有鞍点,输出“It is not exist!”。
输入样例1:
在这里给出一组输入。例如:
2 3 9 5
6 7 8 3
0 5 7 5
2 1 8 3
输出样例1:
在这里给出相应的输出。例如:
a[2][2]=7
输入样例2:
在这里给出一组输入。例如:
2 3 9 5
6 7 8 3
1 5 6 7
2 1 8 3
输出样例2:
在这里给出相应的输出。例如:
It is not exist!
#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]);
}
}
//遍历
int max, min,k,flag =0;
for (i = 0;i < 4;i++) {
//找此i行最大,即比较列
max = 0;
for (j = 0;j < 4;j++) {
if (a[i][max] <= a[i][j]) {
max = j;
}
}
//从该max列找每行中最小的,max列的min行和i行比较(因为max是从i中找到的,所以最小行应
// 该是i)
min = 0;
for (k = 0;k < 4;k++) {
if (a[min][max] >= a[k][max]) {
min = k;
}
}
//找到了
if (min == i) {
flag = 1;
break;
}
}
if (flag)
printf("a[%d][%d]=%d", min, max, a[min][max]);
else
printf("It is not exist!");
}