字符矩阵的旋转 镜面对称 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("
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xingxing1024/p/5186912.html