【描述】
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
【输入输出示例】
【C语言】
#include<stdio.h>
int main() {
int n = 3;
int a[3][3], b[3][3];
int i, j;
//输入数组a的数据
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
int row[3], colum[3];
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
row[i] = a[i][j];
if (row[i] <= a[i][j])
row[i] = a[i][j];
}
}
//数组a转置变成数组b
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
b[j][i] = a[i][j];
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
colum[i] = b[i][j];
if (colum[i] >= b[i][j])
colum[i] = b[i][j];
}
}
for (i = 1; i <= n; i++) {
if (row[i-1] == colum[i-1])
printf("Point in %d line:%d\n",i, row[i-1]);
else
printf("No Point in %d line.\n",i);
}
return 0;
}