#include<stdio.h>
int n;
int a[10000][10000];
int f[10000]={0};//标记数组
int i, j,k;
int sum1 = {0}, sum2 ={0} , sum3 = {0};
void digui(int i,int j)
{
for(i=0;i<n;i++)//每一行的和
sum1+=a[i][0];
for(j=0;j<n;j++)
sum2+=a[0][j];
for(i=0,j=0;i<n,j<n;i++,j++)
sum3+=a[i][j];
if(sum1==sum2&&sum2==sum3)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return ;
}
else
{
i++;
j=1;
digui(i,j);
}
}
int main(){
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
a[i][j]=1;
}
digui(i,j);
return 0;
}
这个程序怎么用递归实现魔幻方阵呢?