#include<stdio.h> int main(void){ int m=0,n=0; scanf("%d %d",&m,&n); int s[m][n]; //int ss[n][m];//一开始想用两个矩阵,发现后面如果多组输入,更改的一直是初始矩阵,且代码繁杂,采用一个矩阵的方式 for(int i=0;i<m;i++){//初始化 for(int j=0;j<n;j++){ scanf("%d ",&s[i][j]); } } int t=0;//变换次数 char flag='r';//判断行还是列变 int c1=0,c2=0;//变换的行(列)号 int temp=0; scanf("%d ",&t); while(t){ scanf(" %c %d %d",&flag,&c1,&c2); c1--;c2--;//给的是行号,--之后才是数组下标值 if(flag=='r'){ for(int j=0;j<n;j++){ temp=s[c2][j];//交换c1和c2行 s[c2][j]=s[c1][j]; s[c1][j]=temp; } } if(flag=='c'){ for(int i=0;i<m;i++){//交换C1和C2列 temp=s[i][c2]; s[i][c2]=s[i][c1]; s[i][c1]=temp; } } t--; } //打印最终数组 for(int i=0;i<m;i++){ for(int j=0;j<n;j++) printf("%d ",s[i][j]); printf("\n"); } return 0; }