c语言 写一个子函数要求找出一个二维数组的最大值

并且返回两个维 求助 想不出来怎么写

阅读 8.2k
2 个回答

题主的问题问的不够清楚。我假设你说的二维数组里面保存是整数,问的是找到二维数组中的最大值,并且返回一个最大值的位置。函数内部两个for循环遍历数组,能找到最大值和位置吧。返回这三个整数的办法?我猜楼主不明白这个。可以new一个整形数组,初始化为最大值及其位置,返回指针。或者,新建一个struct,定义一个全局struct变量,用最大值及其位置初始化这个struct全局变量。

include <stdio.h>

define COL 3

define ROW 4

int getmax(int a, int num)
{

int *max;
int i;

max = a;
for (i = 1; i < num; i++) {
    if (*max < a[i]) {
        max = &a[i];
    }
}

return max;

}

int main(void)
{

int a[ROW][COL] = {{1, 2, 3}, {4, 5, 6}, {9, 8 ,7}, {0, 0, 0}};
int *max;

max = getmax((int *)a, sizeof(a) / sizeof(a[0][0]));
printf("max[%d][%d]=%d", ((int)max - (int)a) / sizeof(a[0][0]) / COL,
    ((int)max - (int)a) / sizeof(a[0][0]) % COL, *max);

return 0;

}

其它类型数组,照这个模板改,返回指针,很方便计算出二位数组下标

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进