#include <stdio.h> #define N 4 int maxInL(int arr[4][4], int line); int minInC(int arr[4][4], int col); int main() { // int arr[4][4]={ // {15,23,34,18}, // {19,20,16,9}, // {14,7,6,5}, // {10,4,3,1} // }; int arr[4][4] = { { 67, 68, 69, 83 }, { 52, 97, 36, 80 }, { 43, 21, 11, 90 }, { 65, 93, 82, 100 } }; //int arr[4][4] = { 67, 68, 69, 83, 52, 97, 36, 80, 43, 21, 11, 90, 12, 4, 3,1 };//ok int i = 0; for (i = 0; i < N; i++) {//遍历行 //该行最大点列下标 int col = maxInL(arr, i); //该列最小值行下标 int row = minInC(arr, col); if (row == i) { printf("a[%d][%d]=%d\n", i, col, arr[i][col]); } } return 1; } /** *返回该行最大值列下标 */ int maxInL(int arr[4][4], int line) { int max = 0; int i = 0; for (i = 0; i < N; i++) { if (arr[line][i] > arr[line][max]) { max = i; } } return max; } /** * 返回该列最小值的行下标 */ int minInC(int arr[4][4], int col) { int min = 0; int i = 0; for (i = 0; i < N; i++) { if (arr[i][col] < arr[min][col]) { min = i; } } return min; }