c语言魔方阵算法(c语言魔方阵)

公羊生茜
导读 大家好,乐天来为大家解答以下的问题,关于c语言魔方阵算法,c语言魔方阵这个很多人还不知道,现在让我们一起来看看吧!1、所谓的魔方距阵就

大家好,乐天来为大家解答以下的问题,关于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("");  }  }。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!