PersonalCorpus 版 (精华区)
1035240 Big Guava ... 466 Accepted 0:00.000
64 2002/08/21 09:26:38.952
char a[10][10],b[10][10],c[10][10],d[10][10];
int n;
void Rotate_a_r90()
{
int i,j;
memset(c,0,sizeof(c));
for (i=0;i<n;i++) for (j=0;j<n;j++) c[j][n-i-1]=a[i][j];
}
void Reflect()
{
// d--> a
int i,j;
for (i=0;i<n;i++) for (j=0;j<n;j++) a[n-i-1][j]=d[i][j];
}
void main()
{
int i,j,k,t=1;
char s[30];
while (scanf("%d\n",&n)==1) {
printf("Pattern %d was ",t++);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for (i=0;i<n;i++) {
for (j=0;j<n;j++) scanf("%c",&a[i][j]);
scanf("%c",&s[0]);
for (j=0;j<n;j++) scanf("%c",&b[i][j]);
gets(s);
}
memcpy(d,a,sizeof(a));
if (memcmp(a,b,sizeof(a))==0) {
printf("preserved.\n");
continue;
}
Rotate_a_r90(); memcpy(a,c,sizeof(a));
if (memcmp(c,b,sizeof(a))==0) {
printf("rotated 90 degrees.\n");
continue;
}
Rotate_a_r90(); memcpy(a,c,sizeof(a));
if (memcmp(c,b,sizeof(a))==0) {
printf("rotated 180 degrees.\n");
continue;
}
Rotate_a_r90();
if (memcmp(c,b,sizeof(a))==0) {
printf("rotated 270 degrees.\n");
continue;
}
Reflect();
if (memcmp(a,b,sizeof(a))==0) {
printf("reflected vertically.\n");
continue;
}
Rotate_a_r90(); memcpy(a,c,sizeof(a));
if (memcmp(c,b,sizeof(a))==0) {
printf("reflected vertically and rotated 90 degrees.\n");
continue;
}
Rotate_a_r90(); memcpy(a,c,sizeof(a));
if (memcmp(c,b,sizeof(a))==0) {
printf("reflected vertically and rotated 180 degrees.\n");
continue;
}
Rotate_a_r90();
if (memcmp(c,b,sizeof(a))==0) {
printf("reflected vertically and rotated 270 degrees.\n");
continue;
}
printf("improperly transformed.\n");
}
}
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.459毫秒