难度一般,但是多组输入一定要记住scanf后面会留有空格,所以要是字符输入时一定要getchar();掉或者%前面加一个空格保持格式一致" %d"否则"%d"就会出现自己预期之外的错误,还不好排查,注重底层原理!!!
#include<stdio.h>
#include<assert.h>
int main()
{
int n=0,m=0;
scanf("%d %d",&n,&m);
int arr[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d ",&arr[i][j]);
}
}
int k=0;
char flag='c';
int c1,c2;
scanf("%d",&k);
int t = 0;//中间变量;
getchar();
while(k)
{
scanf("%c %d %d ",&flag,&c1,&c2);
if(flag=='c') //列变换行m次
{
for(int i = 0;i<m;i++)
{
t=arr[i][c1-1];
arr[i][c1-1]=arr[i][c2-1];
arr[i][c2-1]=t;
}
}
else if(flag=='r') //行变换列n次
{
for(int i = 0;i<n;i++)
{
t=arr[c1-1][i];
arr[c1-1][i]=arr[c2-1][i];
arr[c2-1][i]=t;
}
}
k--;
}
for(int i = 0;i<n;i++)
{
for(int j = 0 ;j<m;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
```c