难度一般,但是多组输入一定要记住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