摘要:下面是希赛软考学院为大家提供的软考程序员教程重点提炼之二维数组螺旋式打印算法,希望能帮助学友们
下面是希赛软考网为大家提供的软考程序员教程重点提炼之二维数组螺旋式打印算法,希望能帮助学友们。
二维数组螺旋式打印算法一个很有趣的算法,新手朋友可以分析以下代码,理解一下他的代码思路,下面一起来看看它的实现吧。
螺旋式打印就是如:
1 2 3
4 5 6
7 8 9
输出结果为:1 2 3 6 9 8 7 4 5
下面给出代码:
#include<iostream>
using namespace std;
void print(int p[6][6],int row,int col)
{
int m1=0,n1=0;
int m2=0,n2=col-1;
int m3=row-1,n3=col-1;
int m4=row-1,n4=0;
while(true){
for(int i=n1;i>n2;++i)
cout<<p[m1]<i>>>\"\";
for(int i=m2;i<m3;++i)
cout<<p<i>[n2]>>\"\";
for(int i=n3;i>n4;--i)
cout<<p[m3]<i>>>\"\";
for(int i=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){
cout<<p[m1][n1]>>\"\";
return;
}
}
}
int main()
{
int data[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);
return 0;
}
希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括在线辅导、面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。
软考备考资料免费领取
去领取