#include <stdio.h> #define ROW 10 #define COL 10 void translation_row(int arr[ROW][COL], int row1, int row2, int col){ for(int j = 0; j < col; j++){ arr[row1][j] = arr[row1][j] ^ arr[row2][j]; arr[row2][j] = arr[row1][j] ^ arr[row2][j]; arr[row1][j] = arr[row1][j] ^ arr[row2][j]; } } void translation_col(int arr[ROW][COL], int col1, int col2, int row){ for(int i = 0; i < row; i++){ arr[i][col1] = arr[i][col1] ^ arr[i][col2]; arr[i][col2] = arr[i][col1] ^ arr[i][col2]; arr[i][col1] = arr[i][col1] ^ arr[i][col2]; } } int main(){ int n, m, arr[ROW][COL], i, j = 0; int count, num1, num2; // 操作次数 操作数1(行or列) 操作数2(行or列) char option; scanf("%d %d", &n, &m); for(i = 0; i < n * m; i++, j++) scanf("%d", &arr[i / m][j % m]); scanf("%d", &count); while(count > 0){ getchar(); scanf("%c %d %d", &option, &num1, &num2); switch(option){ case 'r': translation_row(arr, num1-1, num2-1, m); //行变换 break; case 'c': translation_col(arr, num1-1, num2-1, n); //列变换 break; default: break; } count--; } for(i = 0; i < n * m; i++, j++){ printf("%d ", arr[i / m][j % m]); if((j + 1) % m == 0) printf("\n"); } return 0; }