- 题目描述:
-
输入一个N(N<=10)阶方阵,按照如下方式调整方阵:
1.将第一列中最大数所在的行与第一行对调。
2.将第二列中从第二行到第N行最大数所在的行与第二行对调。
依此类推...
N-1.将第N-1列中从第N-1行到第N行最大数所在的行与第N-1行对调。
N.输出这个方阵
- 输入:
-
包含多组测试数据,每组测试数据第一行为一个整数N,表示方阵的阶数.
接下来输入这个N阶方阵.
- 输出:
-
调整后的方阵
- 样例输入:
-
4 3 6 8 7 6 7 5 3 8 6 5 3 9 8 7 2
- 样例输出:
-
9 8 7 2 6 7 5 3 3 6 8 7 8 6 5 3
#include<iostream> using namespace std; int main(){ int a[10][10]; int n,i,j,temp; int max[10]; while(cin>>n){ for(i=0;i<n;i++){ for(j=0;j<n;j++){ cin>>a[i][j]; } } for(j=0;j<n;j++) { temp=a[j][j]; max[j]=j; for(i=j;i<n;i++) { if(temp<a[i][j]) { temp=a[i][j]; max[j]=i; } } } for(i=0;i<n-1;i++){ for(j=0;j<n;j++) { temp=a[max[i]][j]; a[max[i]][j]=a[i][j]; a[i][j]=temp; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(j==0) cout<<a[i][j]; else cout<<" "<<a[i][j]; } cout<<endl; } } return 0; }