并且返回两个维 求助 想不出来怎么写
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;
}
其它类型数组,照这个模板改,返回指针,很方便计算出二位数组下标
题主的问题问的不够清楚。我假设你说的二维数组里面保存是整数,问的是找到二维数组中的最大值,并且返回一个最大值的位置。函数内部两个for循环遍历数组,能找到最大值和位置吧。返回这三个整数的办法?我猜楼主不明白这个。可以new一个整形数组,初始化为最大值及其位置,返回指针。或者,新建一个struct,定义一个全局struct变量,用最大值及其位置初始化这个struct全局变量。