九宫格:将1~9不重复的填入3X3的格子里,使横,竖,斜数字相加都相等.
谢谢诸位了!
 
										
					
	//终于知道算法了,还以为是要产生一组随机数来一个个的测试.
void array(int a[3][3])  
{
    int k = 1,
        i = 0,
        j = 1;
    a[0][1] = k++;
    while (k <= 9)
    {
        i--;
        j++;
        if (i < 0 && j > 2)
        {
            i += 2;
            j --;
        }
        if (i < 0)
        {
            i = 2;
        }
        if (j > 2)
        {
            j = 0;
        }
            
        if (a[i][j] == 0)
        {
            a[i][j] = k++;
        }
        else
        {
            i += 2;
            j--;
            a[i][j] = k++;
        }
    }
}

#include "stdio.h"
void array(int a[3][3])  
{
    int k = 1,
        i = 0,
        j = 1;
    a[0][1] = k++;
    while (k <= 9)
    {
        i--;
        j++;
        if (i < 0 && j > 2)
        {
            i += 2;
            j --;
        }
        if (i < 0)
        {
            i = 2;
        }
        if (j > 2)
        {
            j = 0;
        }
            
        if (a[i][j] == 0)
        {
            a[i][j] = k++;
        }
        else
        {
            i += 2;
            j--;
            a[i][j] = k++;
        }
    }
}
main()
{   int a[3][3]={0};
 array(a);
 for(int i=0;i<3;i++)
 {
  for( int j=0;j<3;j++)
  {
   printf("  %d  ",a[i][j]);
  }
  printf("\n");
}
}
我把测试数据也给了,就是不知道为什么?再顶一下
