急需一个c语言程序题的答案,谢谢

2025-01-24 15:24:41
推荐回答(1个)
回答1:

这是个魔方矩阵问题,给你个答案:
把里面需要输入的地方改成你的宏定义就行了

#include
void main()
{ int a[15][15],i,j,k,m,n,p;
p=1;
while(p==1)
{
printf("Enter n (n is a odd number from 3 to 15):> ");
scanf("%d",&n);
if((n>=3)&&(n<=15)&&(n%2==1))
p=0;
}
for(i=0;i for(j=0;j a[i][j]=0;
j=n/2;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{ i=i-1;
j=j+1;
if((i<0)&&(j>n-1))
{ i=i+2;
j=j-1;
}
else
{ if(i<0)
i=n-1;
if(j>n-1)
j=0;
}
if(a[i][j]==0)
a[i][j]=k;
else
{ i=i+2;
j=j-1;
a[i][j]=k;
}
}
printf("\n");
for(i=0;i { for(j=0;j printf("%4d",a[i][j]);
printf("\n");
}
}