文章
166
粉丝
68
获赞
825
访问
49.6k
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
while (cin >> n) {
vector<vector<int>>a(n,vector<int>(n));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)cin>>a[i][j];
}
for(int j=0;j<n;j++){
int k=j,max=a[j][j];
for(int i=j;i<n;i++){
if(max<a[i][j]){
max=a[i][j];
k=i;
}
}
swap(a[k],a[j]);
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)cout<<a[i][j]<<' ';
cout<<endl;
}
}
}
本题是对新手一个较好的训练,分析题目是解决模拟问题的核心,我们分析题目,可以得到如下的循环,我们对矩阵进行列遍历,且,每次遍历的时候,对行的遍历起点为此列的列号同值的行号开始,然后我们需要找到最值,并与该列号同值的行号交换。
登录后发布评论
暂无评论,来抢沙发