丑陋的代码

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>

int a[10][10], b[10][10]; // 避免传递二维数组麻烦

// 逆时针旋转 90 度
void rotate90Clockwise(int n) {
    int temp[10][10];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            temp[i][j] = b[i][j];
        }
    }
    // 通过赋值完成旋转
    for (int j = n - 1; j >= 0; j--) {
        for (int i = 0; i < n; i++) {
            b[n - j - 1][i] = temp[i][j];
        }
    }
}

int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf("%d", &a[i][j]);
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf("%d", &b[i][j]);
        }
    }
    // 判断b是否是a旋转过的矩阵
    int cnt = 0;
    while (cnt < 4) {
        bool flag = true;
        // 旋转过判断是否相同
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (a[i][j] != b[i][j]) {
                    flag = false;
                    break;
                }
            }
            if (!flag) break; // 前面已经有不匹配的了,以后的行也不需要比较
        }
        if (!flag) {
            //将矩阵b旋转90度再次比较
            rotate90Clockwise(n);
            cnt++;
        }
        else {
            break;
        }
    }
    if (cnt < 4) { // 已经匹配完提前出来的
        printf("%d\n", cnt * 90);
    }
    else {
        printf("-1\n");
    }
    return 0;
}