矩阵规范化。怎么改(语言-c语言)

问题描述
有一种矩阵规范化是这样做的:先找出矩阵的每一行中的最大值,然后每行的每个元素分别除该行的最大值。

要求写一个函数实现矩阵的规范化,在函数中使用指针。

输入
只有一组测试用例。 输入第一行是两个整数m(小于50)和n(小于50),分别表示矩阵的行数与列数。接下来m行,每行n个浮点数,之间用空格分开。

输出
输出规范化后的矩阵,所有元素保留2位小数。总共m行,每行n个浮点数。之间用空格分开,注意每行最后一个元素后面没有空格。

输入样列
3 3
1 2 3
4 5 6
7 8 9

#include<stdio.h>
int main()
{
    int n,m,x,y;
    int i,j;
    scanf("%d %d",&n,&m);
    double max[n];
    double a[n][m];
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++){
        max[i]=a[i][0];
        for(j=0;j<m;j++){
            if(a[i][j]>max[i]){
                max[i]=a[i][j];
            }
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            a[i][j]=a[i][j]/max[i];
            printf("%.2f ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

输出的第一行会出错

把第二个scanf读取n行m列那个的%d改为%lf,因为是读取double类型浮点数。
然后同样打印%.2f也改为%.2lf,就可以了。