编写C语言程序(二维数组)

编写程序,找出m行n列的二维数组中每行元素的最大值以及每列元素的最小值。输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n个数。输出分两行:第一行为每行元素的最大值,第二行为每列元素的最小值
麻烦各位大佬帮帮忙

#include <stdio.h>
int main()
{
    int a[100][100],m,n,i,j;
    int max,min;
    scanf("%d%d",&m,&n);
    for (i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            scanf("%d",a[i][j])
    }
    //求每一行的最大值
    for (i=0;i<m;i++)
    {
        max = a[i][0];
        for (j=1;j<n;j++)
        {
            if(a[i][j] > max) max = a[i][j];
        }
        if(i<m-1)
            printf("%d ",max);
        else
            printf("%d\n",max);
    }
    //求每一列的最小值
    for (i=0;i<n;i++)
    {
        min = a[0][i];
        for (j=1;j<m;j++)
        {
            if(a[j][i] <min) min = a[j][i];
        }
        if(i<n-1)
            printf("%d ",min);
        else
            printf("%d",min);
    }
    return 0;
}
#include <stdio.h>  
int main()
{
    int a[50][50];
    int m,n,i,j,max,min;
    printf("请分别输入二维数组的行数与列数:\n");
    scanf("%d%d",&m,&n);
    printf("请分别输入数组元素:\n");
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<m;i++)
    {
        max = a[i][0];
        for(j=1;j<n;j++)
            if(max < a[i][j])
                max = a[i][j];
        printf("%d ",max);
    }
    printf("\n");
    for(i=0;i<n;i++)
    {
        min = a[0][i];
        for(j=1;j<m;j++)
            if(min > a[j][i])
                min = a[j][i];
        printf("%d ",min);
    }
    return 0;
}