继续救命!C语言【改错】:输出由1到n平方的自然数的魔方阵

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:12:40
看看我的代码错哪里。。
请讲详细点 谢…… 只用c语言!!
#include <stdio.h>
int main()
{
int a[100][100]={0},n,x=0,y=0,i=2;
scanf("%d",&n);
a[0][n/2]=1;
while(x<n&&i<=n*n)
{
while(y<n)
{
if(a[n-i+1][(n/2)+i-1]==0)
{
if(n-i+1<0&&(n/2)+i-1>=n) a[n-1+1][0]=i;
else if(n-i+1<0) a[n-1][(n/2)+i-1];
else if((n/2)+i-1>=n) a[n-i+1][0];
else a[n-i+1][(n/2)+i-1]=i;
}
if(a[n-i+1][(n/2)+i-1]!=0)
{
if(n-i+1+2<0&&(n/2)+i-1-1>=n) a[n-i+1+2][0]=i;
else if(n-i+1+2<0) a[n-1][(n/2)+i-1-1];
else if((n/2)+i-1-1>=n) a[n-i+1+2][0];
else a[n-i+1+2][(n/2)+i-1-1]=i;
}
i++;
y++;
}
y=0;
x++;
}
x=0;
y=0;
while(x<n)
{
while(y<n)
{
printf("%d ",a[x][y]);
y++;

真是被你打败了啊,你看看你的代码,你不能写点注释么。。
还有,你可以告诉我这几句话是什么意思么。。
else if(n-i+1<0) a[n-1][(n/2)+i-1];
else if((n/2)+i-1>=n) a[n-i+1][0]; 请问,这里能讲得通么?
还又这里
else if(n-i+1+2<0) a[n-1][(n/2)+i-1-1];
else if((n/2)+i-1-1>=n) a[n-i+1+2][0]; 最起码我看不懂啊。。

都错了......