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]\n", 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\n", sizeof(arr[0])); //第一行的大小
44 printf("arr[0][0]的大小%d\n", sizeof(arr[0][0]));
45 fun1(arr, 3);//表示数组有三行
46 }
47 int main()
48 {
49 test();
50 getchar();
51 return 0;
52 }