#include <iostream>using namespace std;int main(){ int n=3; int j,i;// cout<<"其输入任意一个大于1的奇数:\n"; //cin>>n; int **a=new int*[n]; for(int k=0;k<n;k++) { a[k]=new int[n]; } for(i=0;i<n;i++) for(j=0;j<n;j++) { a[i][j]=0; } j=n/2,i=0; a[i][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if(i>=0&&j<=n-1) a[i][j]=k; 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; }
} for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0;}程序编译连接没有错,但不能运行时谢谢,就跟不给数组先分内存一样.
一个输出幻方阵的C++程序,哪里会导致运行时崩溃
答案:2 悬赏:10
解决时间 2021-04-18 11:09
- 提问者网友:醉人眸
- 2021-04-17 13:02
最佳答案
- 二级知识专家网友:为你轻狂半世殇
- 2021-04-17 13:41
你的程序也不知道什么意思
我给你调了一下
是内存访问越界了
i=i+2; j=j-1; a[i][j]=k;
断在这一句了
自己好好检查下逻辑错误 吧
全部回答
- 1楼网友:野心和家
- 2021-04-17 14:12
你去学会编程的书写规则了再来发问。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯