求二维整型数组的“鞍点“。二维数组的“鞍点“定义为:某个数是所在行的最大值,并且是所在列的最小值。

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n );
    int arr[n][n];
    int i,j;
    for ( i = 0; i < n; i++ ) {
        for ( j = 0; j < n; j++ ) {
            scanf("%d", &arr[i][j]);
        }
    }
 
    int row = 0, column = 0, k;
    int flog = 0;
    for ( i = 0; i < n; i++ ) {
        for ( j = 0; j < n; j++ ) {
            if ( column == j )    continue;
            else if (arr[i][column] < arr[i][j] )
                column = j;
        }
        for ( k = 0; k < n; k++ ) {
            if ( row == k )    continue;
            else if (arr[row][column] > arr[k][column])//判断它是最小的
                row = k;
        }
        if (row == i ){
            flog = 1;
            break;
        }
    }
    if(flog == 1 )
        printf("%d %d\n", row, column );
    else
        printf("NO");
    return 0;
}