打印1到n^2的自然数构成的魔方阵
来源:优易学  2011-11-26 10:45:37   【优易学:中国教育考试门户网】   资料下载   IT书店
  #include"stdio.h"
  void main(void)
  {
  int a[15][15]={0};
  int i,j,k,n,p=1;
  while(p==1) //参数p的设置,青年人网提示确定n输入范围
  {
  printf("请输入一个奇数n(1到15之内):");
  scanf("%d",&n);
  if((n>0) && (n<=15) && (n%2!=0)) //魔方阵的阶数应为奇数
  p=0;
  }
  /////////////建立魔方阵
  j=n/2;
  a[0][j]=1; //把“1”放在第一行中间一列上
  i=0;
  j=n/2;
  for(k=2;k<=n*n;k++)
  {
  i=i-1;
  j=j+1;
  if(i<0)
  i=n-1;
  if(j>(n-1))
  j=0;
  a[i][j]=k;
  if(k%n==0) //当这时插入的数是n的整数倍时,下一个起点设为他本列的下一行
  {
  a[++i][j]=++k;
  }
  }
  printf("魔方阵:\n");
  for (i=0;i<n;i++)
  {
  for(j=0;j<n;j++)
  {
  printf("%4d",a[i][j]);
  }
  printf("\n");
  }
  printf("\n");
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训