1 #include<stdio.h> 2 #include<stdlib.h> //malloc free realloc 3 4 /* 查找行最小 列最大的元素 找到之后直接输出 */ 5 void fun1(int arr[][4], int row)// 二维数组 传参需要传递行 6 { 7 int m, n; 8 9 for (int i = 0; i < row; ++i)//有多少行 就找多少次 10 { 11 //查找一次的过程 查找这一行的最小值 12 m = 0;//列从0开始的 13 for (int j = 0; j < 4; ++j) 14 { 15 if (arr[i][j] < arr[i][m])//m表示这一行最小的元素 m返回这一行所在列数column 16 { 17 m = j; 18 } 19 } 20 //arr[i][m] 是这一行最小的元素 21 //找这一列有没有比arr[i][m]更大的元素 22 23 for (n = 0; n < row; ++n)//arr[0][m] arr[2][m] 24 { 25 if (arr[n][m]>arr[i][m]) //已知m的下标为最小值 即列最小 求行最大 遍历出行的值n 求所在行的最大值 26 break; 27 } 28 if (n == row){ 29 printf("所求的点是[%d,%d] ", i, m); 30 } 31 32 } 33 } 34 35 36 void test()//二维数组和数组指针 37 { 38 int arr[3][4] = { // arr有三个元素 arr[0] arr[1] arr[2] 39 9, 7, 4, 5, //arr[0] 有四个元素 arr[0][0] arr[0][1] arr[0][2] arr[0][3] 40 7, 7, 3, 2, 41 1, 0, 2, 9 42 }; 43 printf("arr[0]的大小%d ", sizeof(arr[0])); //第一行的大小 44 printf("arr[0][0]的大小%d ", sizeof(arr[0][0])); 45 fun1(arr, 3);//表示数组有三行 46 } 47 int main() 48 { 49 test(); 50 getchar(); 51 return 0; 52 }