Transform. c
# Include <stdio. h>
Char S1 [11] [11], S2 [11] [11], T1 [11] [11], T2 [11] [11];
Int N;
Int CPY (char A1 [11] [11], char A2 [11] [11])
{
Int I, J;
For (I = 1; I <= N; I ++)
For (j = 1; j <= N; j ++)
A1 [I] [J] = a2 [I] [J];
Return (0 );
}
Int find (char A1 [11] [11], char A2 [11] [11])
{
Int I, J;
For (I = 1; I <= N; I ++)
For (j = 1; j <= N; j ++)
If (A1 [I] [J]! = A2 [I] [J]) Return (0 );
Return (1 );
}
Int T90 (char A1 [11] [11], char A2 [11] [11])
{
Int I, J;
For (I = 1; I <= N; I ++)
For (j = 1; j <= N; j ++)
A2 [I] [J] = A1 [ABS (n-J + 1)] [I];
Return (0 );
}
Int reflection (char A1 [11] [11], char A2 [11] [11])
{
Int I, J;
For (I = 1; I <= N; I ++)
For (j = 1; j <= N; j ++)
A2 [I] [J] = A1 [I] [n-J + 1];
Return (0 );
}
Main ()
{
File * In = fopen ("transform. In", "R ");
File * out = fopen ("transform. Out", "W ");
Int I, J;
Fscanf (in, "% d \ n", & N );
For (I = 1; I <= N; I ++)
{
For (j = 1; j <= N; j ++)
Fscanf (in, "% C", & S1 [I] [J]);
Fscanf (in, "\ n ");
}
For (I = 1; I <= N; I ++)
{
For (j = 1; j <= N; j ++)
Fscanf (in, "% C", & S2 [I] [J]);
Fscanf (in, "\ n ");
}
CPY (T1, S1 );
For (I = 1; I <= 3; I ++)
{
T90 (T1, T2 );
If (find (t2, S2 ))
{
Fprintf (Out, "% d \ n", I );
Fclose (in );
Fclose (out );
Exit (0 );
}
CPY (T1, T2 );
}
CPY (T1, S1 );
Reflection (T1, T2 );
If (find (t2, S2) = 1)
{
Fprintf (Out, "4 \ n ");
Fclose (in );
Fclose (out );
Exit (0 );
}
For (I = 1; I <= 3; I ++)
{
CPY (T1, T2 );
T90 (T1, T2 );
If (find (t2, S2) = 1)
{
Fprintf (Out, "5 \ n ");
Fclose (in );
Fclose (out );
Exit (0 );
}
}
If (find (S1, S2) = 1)
{
Fprintf (Out, "6 \ n ");
Fclose (in );
Fclose (out );
Exit (0 );
}
Fprintf (Out, "7 \ n ");
Fclose (in );
Fclose (out );
Exit (0 );
}