字符矩阵的旋转 镜面对称 1.2.2
字符矩阵顺时针旋转90度的时候, 行变成列, 列变成行。 镜面对称不是很难直接上测试代码:
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; char mata[100][100], matb[100][100]; int N, M; //N行M列 void rot90(char mata[][100]) { char tp[100][100]; for(int i=0; i<N; i++) for(int j=0; j<M; j++) tp[j][N-1-i] = mata[i][j]; //这里行变成列 列变成行 for(int i=0; i<M; i++) for(int j=0; j<N; j++) mata[i][j] = tp[i][j]; } void mirror(char mata[][100]) { for(int i=0; i<N; i++) { for(int j=0; j<M/2; j++) swap(mata[i][j], mata[i][M-1-j]); //将第i行反转 } } int main() { cin>>N>>M; for(int i=0; i<N; i++) scanf("%s", mata[i]); //rot90(mata); mirror(mata); for(int i=0; i<N; i++) { for(int j=0; j<M; j++) printf("%c", mata[i][j]); printf("\n"); } return 0; }