输出n阶“魔方阵”
Posted 米琪儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出n阶“魔方阵”相关的知识,希望对你有一定的参考价值。
魔方阵:每一行、每一列和对角线之和均相等。
程序如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 //输出魔方阵 6 int i,j,k,p,n,a[15][15]; 7 p=1;//用于判断输入的数字是否符合条件 8 while(p==1){ 9 printf("enter n (n=1--15):"); 10 scanf("%d",&n); 11 if((n!=0)&& (n<=15) && (n%2!=0)) 12 p=0; 13 } 14 //初始化 15 for(i=1;i<=n;i++) 16 for(j=1;j<=n;j++) 17 a[i][j]=0; 18 j=n/2 + 1; 19 a[1][j]=1; 20 for(k=2;k<=n*n;k++){ 21 i=i-1; 22 j=j+1; 23 //确立数放置的位置 24 if((i<1) && (j>n)){ 25 i=i+2; 26 j=j-1; 27 } 28 else{ 29 if(i<1) i=n; 30 if(j>n) j=1; 31 } 32 //置数 33 if(a[i][j]==0){ 34 a[i][j]=k; 35 }else{//位置上已有数 36 i=i+2; 37 j=j-1; 38 a[i][j]=k; 39 } 40 } 41 //输出魔方阵 42 for(i=1;i<=n;i++){ 43 for(j=1;j<=n;j++) 44 printf("%5d",a[i][j]); 45 printf("\\n"); 46 } 47 system("pause"); 48 return 0; 49 }
以上是关于输出n阶“魔方阵”的主要内容,如果未能解决你的问题,请参考以下文章