# include<stdio.h>
int max(int * a , int hang )
{
int i = 0;
int k = a[hang-1][i] ;
for(i;i<3;++i)
{
if( k < a[hang-1][i+1])
{
k = a[hang-1][i+1] ;
}
}
return k ;
}
int main(void)
{
int i ;
int a[3][4] = {
{3,16,87,65},
{4,32,11,108},
{10,25,12,37}
};
// max(a,1);
// max(a,2);
// max(a,3);
int b[3] = {max(a,1),max(a,2),max(a,3)};
for(i=0;i<3;++i)
printf("%d\t",b[i]);
printf("\n");
return 0;
}
这行代码系统老说有错误。请告诉我如何改
最重要的是为什么这样改。越详细越好
非常感谢!
为什么传输一个二维数组是你说的那样才行呢?
能具体说下吗?非常感谢!!!!!
上面的形参代表的是数组指针,比如说你定义了一个二维数组int a[3][4],其实a[0]就是一个有四个元素的数组,所以定义int (*a)[4]就代表a指向一个拥有4个元素的数组的指针,也即所谓的数组指针,我记得当时我们学习的时候,区分数组指针和指针数组是比较重要的,相关概念可在大多C语言的参考书中找到,希望对你有所帮助