-
题目描述:
-
输入一个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 Matr[11][11]; int n,i,j,k; while(cin>>n) { for(i = 0;i < n;i++) { for(j = 0;j < n;j++) { cin>>Matr[i][j]; } } for(i = 0;i < n-1;i++) { int locate = 0,max = Matr[i][i]; for(j = i;j < n;j++) { if(max < Matr[j][i]) { locate = j; } } for(k = 0;k < n;k++) { int tmp; tmp = Matr[i][k]; Matr[i][k] = Matr[locate][k]; Matr[locate][k] = tmp; } } for(i = 0;i < n;i++) { for(j = 0;j < n;j++) { if(j == n - 1) { cout<<Matr[i][j]<<endl;; } else { cout<<Matr[i][j]<<" "; } } } } return 0; }
这道题没有通过OJ测试,是WA,但是个人感觉是对的,最起码思路是对的