软考程序员教程重点提炼之二维数组螺旋式打印算法

程序员 责任编辑:小狐狸 2016-08-11

添加老师微信

备考咨询

加我微信

摘要:下面是希赛软考学院为大家提供的软考程序员教程重点提炼之二维数组螺旋式打印算法,希望能帮助学友们

       >>>>点击进入了解程序员培训视频

   >>>>点击进入了解程序员在线辅导

 >>>>点击进入了解程序员考试教材


       下面是希赛软考网为大家提供的软考程序员教程重点提炼之二维数组螺旋式打印算法,希望能帮助学友们。


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

       螺旋式打印就是如:

       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;

       }


       返回目录:软考程序员教程重点提炼之算法实例汇总


       希赛软考网拥有十四年软考培训经验希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程多样的培训方式包括在线辅导面授使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!