首页 > 代码库 > 输出n阶“魔方阵”
输出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阶“魔方阵”
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。