#include<stdio.h>
main(){
int n;
scanf("%d",&n);
int a[n][n],sum[n],flag[n],tmp;
int i,j,r,c;
for(i=0;i<n;i++){
sum[i]=0;
flag[i]=-1;//初始化
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
sum[i]+=a[i][j];
}
}//输入矩阵并求和
for(r=0;r<n;r++){
i=0;
for(c=0;c<n;c++){
if(sum[r]>sum[c]){
i++;//平均值大的往后排
}
}
while(flag[i]!=-1){
i++;
}//出现平均值相等的情况
flag[i]=r;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d",a[flag[i]][j]);
if(j<n-1){
printf(" ");
}else{
printf("\n");
}
}
}
}
任意给定一个n*n的矩阵,矩阵的行数与列数均为n。你的任务是通过行变换,使得矩阵每行元素的平均值按递增顺序排列。如果出现有的行平均值相同的情况,则按照原顺序输出。
输入格式:
共n+1行,第一行为一个整数n代表矩阵的行数(列数),n的范围是1—100。后边n行为n*n个整数,即此矩阵的元素。矩阵元素的绝对值不会超过1000000。
输出格式:
共n行,为经过行变换后的新矩阵。每行的每个元素用空格分隔,注意最后一个元素后为换行符。具体见样例。
输入样例:
3
5 5 5
3 3 3
1 1 1
输出样例:
1 1 1
3 3 3
5 5 5