四阶魔方阵的计算,运行结果为什么错误?

图片说明
/*
3阶魔法阵:
2 9 4 sum行=15
3 5 7 sum列=15
6 1 8 sum对角=15
下面计算4阶魔法阵
*/
#include
int main()
{
int n=4;// scanf("%d",&n);
int m=n*n;////////////////////////////魔方阶数
int z,x,c,v,b1,b2;//////////循环
int a[17]={0};///////萝卜坑
int i=n+1,j=n+1,w[i][j];////////////////////////////二维数组,魔方阵
//
i=0;j=0;
for(z=1;z<=m;z++)
{
a[z]++;
if(z==1) a[z]--;//............................特例排除
if(a[z]==0)
{
a[z]++;
i++;
//......................................确定二维数组行标
j++;w[i][j]=z;
for(x=1;x<=m;x++)
{
if(a[x]==0)
{
a[x]++;
j++;w[i][j]=x;
for(c=1;c<=m;c++)
{
if(a[c]==0)
{
a[c]++;
j++;w[i][j]=c;
for(v=1;v<=m;v++)
{
if(a[v]==0)
{
a[v]++;
j++;w[i][j]=v;
//......................................二维数组列标归零
j=0;
}
}
}

            }
    }

    }
}
}
///////////////////输出魔方阵
for(b1=1;b1<=n;b1++)
{
    for(b2=1;b2<=n;b2++)    
    {
        printf("%d ",w[i][j]);
    }
    printf("\n");
}
return 0;

}


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐