题解 | #矩阵交换#
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
#include <iostream> using namespace std; int num[10][10]; void swap_r(int a ,int b,int m) { a -=1; b -=1; int i=0; while (1) { int temp = num[a][i]; num[a][i]=num[b][i]; num[b][i]=temp; i++; if(i==m) { break; } } } void swap_c(int a ,int b,int n) { a -= 1; b -= 1; int i=0; while (1) { int temp = num[i][a]; num[i][a]=num[i][b]; num[i][b]=temp; i++; if(i==n) { break; } } } int main() { int n,m,k,a,b; char t; cin>>n>>m; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>num[i][j]; } } cin>>k; for(int i=0;i<k;i++) { cin>>t>>a>>b; if(t=='r') { swap_r(a, b, m); } else if (t=='c') { swap_c(a, b, n); } else { } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cout<<num[i][j]<<" "; } cout <<endl; } } // 64 位输出请用 printf("%lld")
将行变化和列变化都封装成函数进行,设置数组为全局变量免去了二级指针的运算,能不绕尽量不饶把