满意答案
GorunNova
2014.09.10
采纳率:58% 等级:10
已帮助:617人
看看这个吧,字数太多原因,不得不把程序打乱了 #include #define N 100 int main() { int h,i,j,k,l,n,t; int a[N][N]; while(1){ for(i=0;iN) { printf("The Number You Iput Is Invalid! Please Try Again!\n"); continue; } if(n%2==1) { for(i=0,j=n/2,k=1;k<=n*n;) { if(i<0) i=i+n; if(i>=n) i=i-n; if(j<0) j=j+n; if(j>=n)j=j-n; if(a[i][j]!=0) { i=i+2; j=j-1; continue;} a[i][j]=k++; i--; j++; } }//if 1 if(n%4==0) { for(i=0,k=1;i=3*n/4) for(j=0;j=n/4&&i<3*n/4) for(j=n-1;j>=0;j--) a[i][j]=k++; } for(j=n/4;j<3*n/4;j++) for(i=0;i4)break; if(t==1){h=0;l=0;} if(t==2){h=n/2;l=n/2;} if(t==3){h=0;l=n/2;} if(t==4){h=n/2;l=0;} for(i=h,j=l+n/4;k<=t*n*n/4;) { if(i=h+n/2)i=i-n/2; if(j=l+n/2)j=j-n/2; if(a[i][j]!=0){ i=i+2; j=j-1; continue;} a[i][j]=k++;i--;j++; } } for(j=0;j
00分享举报