【C語言】對一個n*n矩陣,通過行變換,使其每行元素的平均值按遞增順序排序
阿新 • • 發佈:2018-12-08
#include<stdio.h> int main() { int n,a[100][100],r,c,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&a[i][j]); } int sum[100]={0}; for(i=0;i<n;i++) { for(j=0;j<n;j++) sum[i]+=a[i][j]; } for(i=0;i<n;i++) { int min; min=i; for(j=i+1;j<=n-1;j++) { if(sum[j]<sum[min]) min=j; }//返回sum中最小元素的下標 if(i!=min) { //對原陣列進行轉換 for(c=0;c<n;c++) { int temp1; temp1=a[min][c]; a[min][c]=a[i][c]; a[i][c]=temp1; } //對sum進行轉換 int temp; temp=sum[i]; sum[i]=sum[min]; sum[min]=temp; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; }