魔方阵出问题了,麻烦看下啊
程序代码:
#include<iostream> using namespace std; int main() { int n,i,j,k; //i表示行,j表示列,n表示阶数,k表示当前需要给数组填入的数字 cout<<"请输入魔方阶数(奇数):"<<endl; //确定阶数 cin>>n; int **a; a=new int *[n]; for(i=0;i<=n-1;i++) { a[i]=new int [n]; } for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=0; a[0][(n-1)/2]=1; //第一行中间元素赋值为1 i=0; j=(n-1)/2; for(k=2;k<=n*n;k++) { if(i-1<0&&(j+1)>(n-1)) //*****向上向右同时越界填入下一列 { a[i+1][j]=k; i++; continue; } if(a[i-1][j+1]!=0) //*****下一位置已有数字则填入下一列 { a[i+1][j]=k; i++; continue; } if(i-1<0) //单纯向上越界填入对边下一列 { cout<<"判断3执行"<<endl; a[n-1-i][j+1]=k; i=n-1-i;j=j+1; continue; } if((j+1)>(n-1)) //单纯向右越界填入对边上一行 { cout<<"判断4执行"<<endl; a[i-1][n-1-j]=k; i=i-1;j=n-1-j; continue; } a[i-1][j+1]=k; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<a[i][j]<<' '; } cout<<endl; } return 0; } 那个我发现*****这两个判断体进不去,怎么办啊?