题解 | #矩阵交换#
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
#include <stdio.h> int main() { int n,m; scanf("%d %d",&n,&m); int i=0; int j=0; int arr[n][m]; //输入 for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&arr[i][j]); } } int cnt=0; scanf("%d",&cnt); //改变次数 char ch; int x,y; int swap; //交换数 for(i=0;i<cnt;i++) { //getchar(); //getchar只吸收掉前面一次输入的换行,注意只有一次 //在后面加scanf前面多加个空格,可以预防多次 scanf(" %c %d %d",&ch,&x,&y); //修改 if(ch =='r') //行变换 { for(j=0;j<m;j++) //不要用i { swap=arr[x-1][j]; arr[x-1][j]=arr[y-1][j]; arr[y-1][j]=swap; } } else if(ch =='c') //列变换 { for(j=0;j<n;j++) //不要用i { swap=arr[j][x-1]; arr[j][x-1]=arr[j][y-1]; arr[j][y-1]=swap; } } } //输出 for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%d ",arr[i][j]); } printf("\n"); } return 0; }