今天来聊聊关于c语言魔方阵的程序代码,c语言魔方阵的文章,现在就为大家来简单介绍下c语言魔方阵的程序代码,c语言魔方阵,希望对各位小伙伴们有所帮助。
1、所谓的魔方距阵就是一种特殊的奇数阶方阵:它的行,列,对角线。
2、上的数字之和都要相等,且方阵中的每一个数字都不相等,且数字的范围都在1到n*n之间. 我编的程序如下: #include<stdio.h> #define N 15 main() { int i,j,row,cloum,size,square[N][N],count; clrscr(); printf("please enter the square size(odd && <=15):"); scanf("%d",&size); while(size%2==0||size>15||size<3) { printf("error due to the wrng input!please input it again!"); scanf("%d",&size); } for(i=0;i<size;i++) for(j=0;j<size;j++) square[i][j]=0; i=0;j=(size-1)/2; square[i][j]=1; for(count=2;count<=size*size;count++) { row=i-1<0?(size-1):(i-1); cloum=j-1<0?(size-1):(j-1); if(square[row][cloum]) i=(++i)%size; else {i=row; j=j-1<0?(size-1):(j-1); } square[i][j]=count; } printf("the %d square is:",size); for(i=0;i<size;i++) { for(j=0;j<size;j++) printf("%d",square[i][j]); printf(""); } } 只能求奇数的魔方阵 #define N 20 main() { int a[N][N]; int n,i,j,r; scanf("%d",&n); for(i=0;i<N;i++) for(j=0;j<N;j++) a[i][j]=0; i=0; j=n/2; a[i][j]=1; for (r=2;r<=n*n;r++) if (a[(i+n-1)%n][(j+1)%n]==0) {i=(i+n-1)%n;j=(j+1)%n;a[i][j]=r;} else {i=(i+1)%n;a[i][j]=r;} for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%4d",a[i][j]); printf(""); } }。
相信通过c语言魔方阵这篇文章能帮到你,在和好朋友分享的时候,也欢迎感兴趣小伙伴们一起来探讨。