📄 1461s rotations and reflections.cpp
字号:
#include<stdio.h>char vzor[10][22];char s[20];char *(vzor0[10]);int n;int i,j;void osa(void) { int i,j1,j2; char c; for (j1=0; j1<n/2; j1++) { j2=n-1-j1; for (i=0; i<n; i++) { c=vzor[j1][i]; vzor[j1][i]=vzor[j2][i]; vzor[j2][i]=c; } } }void rotace(void) { int i1,i2,j1,j2; char c; for (i1=0,i2=n-1; i1<n/2; i1++,i2--) for (j1=0; j1<(n+1)/2; j1++) { j2=n-1-j1; c=vzor[i1][j1]; vzor[i1][j1]=vzor[j2][i1]; vzor[j2][i1]=vzor[i2][j2]; vzor[i2][j2]=vzor[j1][i2]; vzor[j1][i2]=c; } }int shoda(void) { int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) if (vzor[i][j]!=vzor0[i][j]) return 0; return 1; }int main() { gets(s); sscanf(s,"%d",&n); while (n) { for (i=0; i<n; i++) { gets(vzor[i]); vzor[i][n]=0; vzor0[i]=&vzor[i][n+1]; } if (shoda()) printf("Preserved\n"); else { rotace(); if (shoda()) printf("Rotated through 90 degrees\n"); else { rotace(); if (shoda()) printf("Rotated through 180 degrees\n"); else { rotace(); if (shoda()) printf("Rotated through 270 degrees\n"); else { rotace(); osa(); if (shoda()) printf("Reflected\n"); else { rotace(); if (shoda()) printf("Reflected and rotated through 90 degrees\n"); else { rotace(); if (shoda()) printf("Reflected and rotated through 180 degrees\n"); else { rotace(); if (shoda()) printf("Reflected and rotated through 270 degrees\n"); else printf("Improper\n"); } } } } } } } gets(s); sscanf(s,"%d",&n); } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -