编写程序,寻找一个整型二维数组的“鞍点“。如果存在,则输出“鞍点”所在的行、列及其鞍点值。
#include <stdio.h>
#define ROWS 4
#define COLS 4
int main() {
int array[ROWS][COLS] = {{15, 9, 12, 14}, {13, 8, 11, 10}, {16, 14, 10, 10}, {10, 13, 14, 1}};
int saddlePointExist = 0;
for(int i=0; i<ROWS; i++) {
int maxInRow = 0, j;
for(j=0; j<COLS; j++) {
if(array[i][j] > array[i][maxInRow]) {
maxInRow = j;
}
}
int k, minInCol = 1;
for(k=0; k<ROWS; k++) {
if(array[k][maxInRow] < array[i][maxInRow]) {
minInCol = 0;
break;
}
}
if(minInCol) {
printf("鞍点的位置:行%d 列%d,鞍点值:%d\n", i+1, maxInRow+1, array[i][maxInRow]);
saddlePointExist = 1;
}
}
if(!saddlePointExist) {
printf("二维数组中不存在鞍点。\n");
}
return 0;
}