纯新手求教,这个问题做过之后到底错在哪里?
一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式:1:转90度:图案按顺时针转90度。
2:转180度:图案按顺时针转180度。
3:转270度:图案按顺时针转270度。
4:反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。
5:组合:图案在水平方向翻转,然后再按照1到3之间的一种再次转换。
6:不改变:原图案不改变。
7:无效转换:无法用以上方法得到新图案。
如果有多种可用的转换方法,请选择序号最小的那个。
只使用1--7中的一个步骤来完成这次转换。
程序代码:
#include<stdio.h> int zhuan1(); int zhuan2(); int zhuan3(); int zhuan4(); int zhuan5(); int zhuan6(); int zhuan7(); int zhuan8(); int zhuan9(); int main() { char in[11][11],out[11][11],bian[11][11]; int N,i,j,a=0; scanf("%d",&N); for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { scanf("%c",&in[i][j]); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { scanf("%c",&out[i][j]); } } zhuan1(); for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan2(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan3(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan4(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan5(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan6(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan7(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan8(); } } for(i=1;i<=N;i++) { for(j=1;j<=N;j++) { if(bian[i][j]!=out[i][j]) break; else zhuan9(); } } printf("%d",a); return 0; } int zhuan1(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[j][N-i+1]=in[i][j]; a=1; return a; } int zhuan2(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-i+1][N-i+1]=in[i][j]; a=2; return a; } int zhuan3(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-j+1][i]=in[i][j]; a=3; return a; } int zhuan4(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[j][i]=in[i][j]; a=4; return a; } int zhuan5(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-i+1][N-i+1]=in[i][j]; for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[j][N-i+1]=in[i][j]; a=5; return a; } int zhuan6(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-i+1][N-i+1]=in[i][j]; for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-i+1][N-i+1]=in[i][j]; a=5; return a; } int zhuan7(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-i+1][N-i+1]=in[i][j]; for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[N-j+1][i]=in[i][j]; a=5; return a; } int zhuan8(int N,int i,int a,int j,char bian[11][11],char in[11][11]) { for(i=1;i<=N;i++) for(j=1;j<=N;j++) bian[i][j]=in[i][j]; a=7; return a; } int zhuan9(int a) { a=7; return a; }
运行后不能完全把数据输入进去就退出了,求解释。