【牛客】矩阵交换
题目描述
KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。
输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
接下来一行输入k,表示要执行k次操作(1≤k≤5)。接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符'r'时代表进行行变换,当t为字符'c'时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。
输出描述:
输出n行m列,为矩阵交换后的结果。每个数后面有一个空格。
注意字符问题
1 #include <stdio.h> 2 int main() 3 { 4 int a[15][15],b[15][15]; 5 int i,j,n,m,flag=1,k; 6 scanf("%d%d",&n,&m); 7 for(i=0;i<n;i++){ 8 for(j=0;j<m;j++){ 9 scanf("%d",&a[i][j]); 10 } 11 } 12 scanf("%d",&k); 13 while(k--){ 14 char ch; 15 getchar(); 16 ch=getchar(); 17 int x,y; 18 scanf("%d%d",&x,&y); 19 x--; 20 y--; 21 if(ch=='r'){ 22 for(j=0;j<m;j++){ 23 int t=a[x][j]; 24 a[x][j]=a[y][j]; 25 a[y][j]=t; 26 } 27 }else if(ch=='c'){ 28 for(i=0;i<n;i++){ 29 int t=a[i][x]; 30 a[i][x]=a[i][y]; 31 a[i][y]=t; 32 } 33 } 34 } 35 for(i=0;i<n;i++){ 36 for(j=0;j<m;j++){ 37 printf("%d ",a[i][j]); 38 } 39 printf("\n"); 40 } 41 }