【B2099】矩阵交换行 题解
TensorFlow_js · · 题解
题目分析
只需使用 for 输入矩阵后交换行并输出即可。
字符串解法
#include<bits/stdc++.h>
using namespace std;
string jz[5]={"","","","",""};//定义字符串数组 jz (题目中的矩阵的行)
int main(){
for(int i = 0;i < 5;i ++)getline(cin,jz[i]);
int a,b;cin>>a>>b;
swap(jz[a-1],jz[b-1]);//使用STL函数 swap 交换
for(int i = 0;i < 5;i ++)cout<<jz[i]<<endl;
return 0;
}
二维数组解法 1
#include<bits/stdc++.h>
using namespace std;
int jz[5][5];//定义整型数组 jz (题目中的矩阵)
int main(){
for(int i = 0;i < 5;i ++)for(int j = 0;j < 5;j ++)cin>>jz[i][j];
int a,b;cin>>a>>b;
swap(jz[a-1],jz[b-1]);//使用STL函数 swap 交换
//这里 swap 是将一整个一维数组 jz[a-1] 与 jz[b-1] 进行了交换
for(int i = 0;i < 5;i ++){for(int j = 0;j < 5;j ++)cout<<jz[i][j]<<' ';cout<<endl;}
return 0;
}
二维数组解法 2(手打swap)
#include<bits/stdc++.h>
using namespace std;
int jz[5][5];//定义整型数组 jz (题目中的矩阵)
int main(){
for(int i = 0;i < 5;i ++)for(int j = 0;j < 5;j ++)cin>>jz[i][j];
int a,b;cin>>a>>b;
for(int i = 0;i < 5;i ++){int temp = jz[a-1][i];jz[a-1][i]=jz[b-1][i];jz[b-1][i]=temp;}//使用临时变量 temp 进行交换
for(int i = 0;i < 5;i ++){for(int j = 0;j < 5;j ++)cout<<jz[i][j]<<' ';cout<<endl;}
return 0;
}
UPD:
2021\7\4\14:47 :重新排版。
2021\7\4\15:35 :删除多余注释,加上空格,解释了二维数组解法 1 中 swap 的功能。