要点:
1.利用二维数组在物理上是一维的特性,将二维数组使用一级指针传递
2.二维数组名是个二级指针
思路:
每循环m次,跳到max数组下一个元素,再不断更新这个元素。
#include <stdio.h>
#include<stdlib.h>
int* find_max(int* arr, int n, int m)
{
int i = 0;
int j = 0;
int* max = (int*)malloc(sizeof(int) * n);
max[j] = arr[0];
for (i = 0; i < n * m; i++)
{
if (max[j] < arr[i])
{
max[j] = arr[i];
}
if ((i + 1) % m == 0)
{
j++;
max[j] = arr[i + 1];
}
}
for (i = 0; i < n; i++)
{
printf("%d\n", max[i]);
}
return max;
}
int main(int argc, char* argv[])
{
int arr[3][4] = { 1,3,5,7,
2,4,1,3,
6,5,1,9 };
find_max(*arr, 3, 4);
printf("Hello World!\n");
return 0;
}