魔方矩阵

作者在 2007-07-17 06:05:00 发布以下内容

前些时间我有个同学去软件园应聘实习生时考了这么一个题,就是写出产生魔方矩阵的程序,回来我见他在问老师,把老师也给弄了半天,我在网上找了一个改了一下基本上可以了,由于我是搞java的,改出来的C语言应该不是很好吧,还请大家多指点哦!

#include
#define Max_Size 15
main()
{
 static int square[Max_Size][Max_Size];
 int i,j,row,column,count,size;
 printf("输入的矩阵大小:\n");
 scanf("%d",&size);
 if(size<1||size>Max_Size+1)
 {
  printf("输入的矩阵太大!");
 }
 if(!(size % 2))
 {
  printf("大小不能为偶数"); 
 }
 for(i=0;i for(j=0;j square[j] = 0;
 square[0][(size-1)/2] = 1;
 i = 0;
 j = (size-1)/2;
 for(count=2;count<=size*size;count++)
 {
  row = (i-1<0)?(size-1):(i-1);
  column=(j-1<0)?(size-1):(j-1);
  if(square[row][column])
   i=(++i)%size;
  else
  {
   i = row;
   j = (j-1<0)?(size-1):--j;
  }
  square[j] = count;
 }
 printf("大小为%d的魔术矩阵为:\n",size);
 for(i=0;i<size;i++)
 {
  for(j=0;j<size;j++)
  {
   printf("%4d",square[j]);
  }
  printf("\n");
 }
}

java算法设计 | 阅读 2802 次
文章评论,共0条
游客请输入验证码