1470.调整方阵

 

题目描述:

输入一个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;
}

 

posted @ 2018-10-01 18:15  bernieloveslife  阅读(155)  评论(0编辑  收藏  举报