用函数写求二维数组中元素最大值,用sizeof求二维数组长度

#include #include int max(int a[][4]);//函数声明
int main(int agrc,char*agrv[])
{
    int a[][4]={{3,6,7,2},{68,5,21,8},{56,8,4,11}};
    //int a[][4]={3,6,7,2,68,5,21,8,56,8,4,11};也行
    printf("%d\n",max(a));//函数调用
    int n1=sizeof(a)/sizeof(int);//总数,int占四个字节n1=12*4/4=12
    int n2=sizeof(a)/sizeof(int)/(sizeof(a[0])/sizeof(int));//行数=总数/列数,或者sizeof(a)/sizeof(a[0])
    // a[0]指首行地址,每行四列,4*4=16,
    int n3=sizeof(a)/sizeof(int)/(sizeof(a)/sizeof(a[0]));//列数=总数/行数,或者sizeof(a[0])/sizeof(int),或者sizeof(a[0])/sizeof(a[0][0])
    //a[0][0]是首元素,占四个字节
    printf("%d %d %d\n",n1,n2,n3);
return 0;
}
int max(int a[][4])//函数定义
{
    int i,j,max;
    max=a[0][0];
    for(i=0;i<3;i++)
    {
        for(j=0;jmax)
            {
                max=a[i][j];
            }
        }
    }
    return max;
}


上一篇:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先


下一篇:【剑指offer】68. 二叉搜索树的最近公共祖先