问题描述
有一种矩阵规范化是这样做的:先找出矩阵的每一行中的最大值,然后每行的每个元素分别除该行的最大值。
要求写一个函数实现矩阵的规范化,在函数中使用指针。
输入
只有一组测试用例。 输入第一行是两个整数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;
}
输出的第一行会出错