#include<iostream>
using namespace std;
int main()
{
int n,m,k;
scanf("%d%d",&n,&m);
int a[100][100];
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
scanf("%d",&k);
char ch[100][100];
for(i=0;i<k;i++)
for(j=0;j<3;j++)
cin>>ch[i][j];
for(i=0;i<k;i++)
{
if(ch[i][0]=='r')
{
int t;
for(int d=0;d<m;d++)
{
t=a[(ch[i][1]-'0')-1][d];
a[(ch[i][1]-'0')-1][d]=a[(ch[i][2]-'0')-1][d];
a[(ch[i][2]-'0')-1][d]=t;
}
}
else if(ch[i][0]=='c')
{
int s;
for(int f=0;f<n;f++)
{
s=a[f][(ch[i][1]-'0')-1];
a[f][(ch[i][1]-'0')-1]=a[f][(ch[i][2]-'0')-1];
a[f][(ch[i][2]-'0')-1]=s;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
#include<stdio.h>
int main()
{
int n,m,k;
scanf("%d%d",&n,&m);
int a[100][100];
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
scanf("%d",&k);
char ch[100][100];
for(i=0;i<k;i++)
for(j=0;j<3;j++)
scanf("%c",&ch[i][j]);
for(i=0;i<k;i++)
{
if(ch[i][0]=='r')
{
int t;
for(int d=0;d<m;d++)
{
t=a[(ch[i][1]-'0')-1][d];
a[(ch[i][1]-'0')-1][d]=a[(ch[i][2]-'0')-1][d];
a[(ch[i][2]-'0')-1][d]=t;
}
}
else if(ch[i][0]=='c')
{
int s;
for(int f=0;f<n;f++)
{
s=a[f][(ch[i][1]-'0')-1];
a[f][(ch[i][1]-'0')-1]=a[f][(ch[i][2]-'0')-1];
a[f][(ch[i][2]-'0')-1]=s;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
}
第八场H-矩阵交换,第二个用c的语句,达不到交换的目的。第一个代码只改了输入字符数组时scanf为c++的cin,就对了,求解