二维数组:二维数组螺旋式打印算法

二维数组螺旋式打印算法一个很有趣的算法,新手朋友可以分析以下代码,理解一下他的代码思路,下面一起来看看它的实现吧,自学编程网整理发布,www.。

螺旋式打印就是如:123
456
789

输出结果为:123698745

下面给出代码:

#include<iostream>
usingnamespacestd;
voidprint(intp[6][6],introw,intcol)
{
intm1=0,n1=0;
intm2=0,n2=col-1;
intm3=row-1,n3=col-1;
intm4=row-1,n4=0;
while(true){
for(inti=n1;i<n2;++i)
cout<<p[m1][i]<<\"\";
for(inti=m2;i<m3;++i)
cout<<p[i][n2]<<\"\";
for(inti=n3;i>n4;--i)
cout<<p[m3][i]<<\"\";
for(inti=m4;i>m1;--i)
cout<<p[i][n4]<<\"\";
++m1,++n1;
if(row%2==0&&m1==m3){
if((row+1)%2==0)
cout<<p[row/2+1][col/2+1]<<\"\";
return;
}
++m2,--n2;
--m3,--n3;
--m4,++n4;
if(row%2!=0&&m1==m3){ [Page]
cout<<p[m1][n1]<<\"\";
return;
}
}
}
intmain()
{
intdata[6][6]={{1,2,3,4,5,6},
{20,21,22,23,24,7},
{19,32,33,34,25,8},
{18,31,36,35,26,9},
{17,30,29,28,27,10},
{16,15,14,13,12,11}};
print(data,6,6);
return0;
}

Tags:  asp二维数组 动态二维数组 java二维数组 二维数组

延伸阅读

最新评论

  1. 错误多多啊,仁兄。。。。

发表评论