#include <iostream.h>#include <stdio.h> #define M 20 char a[M][M]; int fuback(int k,int n,char u){ int i; if(k==0) u='T'; if(k==1) u='J'; for(i=k;i<n;i++) { a[k][i]=u; a[i][k]=u; a[i][n-1]=u; a[n-1][i]=u; } if(k==1)u='0'; if(k!=((M+1)/2)){fuback(k+1,n-1,u+1);} //无论奇偶都执行到最里面的k!=((M+1)/2); else return 0; } int main(int argc, char *argv[]){ char ut='0';//初始化字符变量,全靠它 int nt=M;//宽度 int kt=0;//表示由内到外的层数 int h,j; fuback(kt,nt,ut);//递归 for(h=0;h<M;h++) { for(j=0;j<M;j++) { printf("%c",a[h][j]); printf(" "); } printf("\n"); } return 0;}

评论