永发信息网

C++利用二维数组的方法打印一个n*n的数字螺旋方阵。这个数字方阵的特点是:以左上角1开始向下,数字以外圈向里按自然数顺序转圈递增,一直到中心位置的n2为止。例如n =3

答案:1  悬赏:70  手机版
解决时间 2021-04-26 07:48

1 8 7

2 9 6

3 4 5

最佳答案

#include<iostream.h>
#include<process.h>
#include<iomanip.h>
int main()
{int N,*b,d,**a;
cout<<"please input a number of array:";
cin>>N;
if((b=new int[N*N])==NULL)
{cout<<"can't allocate more memory.";
exit(1);}
a=new int *[N];
for(int c=0;c<N;c++)
a[c]=new int[N];


for(int a1=0;a1<N;a1++)
for(int a2=0;a2<N;a2++)
a[a1][a2]=0;
for(int i=0;i<N*N;i++)
b[i]=i+1;


if(N%2)
a[(N-1)/2][(N-1)/2]=N*N;

i=0;
for(d=0;d<N/2;d++)
{

for(int j=0+d;j<N-1-d;j++)
a[0+d][j]=b[i++];

for(int k=0+d;k<N-d-1;k++)
a[k][N-1-d]=b[i++];

for(int l=N-d-1;l>0+d;l--)
a[N-1-d][l]=b[i++];

for(int m=N-1-d;m>=1+d;m--)
a[m][0+d]=b[i++];
}

cout<<endl;

for(a1=0;a1<N;a1++)
{ for(int a2=0;a2<N;a2++)
cout<<setw(4)<<a[a1][a2];
cout<<endl;
}
return 0;
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有什么好歌?介绍下
我是1984年农历9月24日生的请问我的阳历生日
帮我找一下那首stand- 珠儿。是放在空间免费
如何删除不能删除的文件?
吃什么菜会很健康
为什么虐杀原形中文版下不了啊?
心脏病有遗传吗?如果有遗传照得出来吗
求合格的QQ校友30k的男头像
孕妇能吃西餐吗?
爱自己的唯美励志句子,爱自己就像爱惜眼睛一
北京三区卡露亚-教导 匿迹能卖多少钱
找偶像剧看!
武神刷图用落日鹰眼好吗,装备选什么?
给我办支付宝的流程、
为什么我总是觉得我可可怜 可寂寞可孤单呢?
推荐资讯
比中村地址在什么地方,想过去办事
哪里需要招服装设计呢?
老公和女同事经常开低俗玩笑,在网上同网友乱
郑州有卖敏易清OPC的吗?
合肥到灵璧多少公里,想知道: 灵璧县到淮北走
心联欣大兴药房在哪里啊,我有事要去这个地方
全屏触摸手机哪个好用?
注册奥比岛的时候第一步怎么获得验证码
CS最讲究的是什么?
怎样让低血压升高呢
我急需要 wavin flag 的海底版伴奏
中国哪的女人最好?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?