丑陋的代码
#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; }