国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

二維數(shù)組的轉(zhuǎn)圈打印和“之”字打印

2019-11-10 16:44:59
字體:
供稿:網(wǎng)友

       最近在聽牛客網(wǎng)左老師的算法視頻課,對(duì)算法更感興趣了,并且希望自己的算法能力有所提高,于是計(jì)劃把題目編一編,鍛煉代碼實(shí)現(xiàn)能力。

       本次的代碼是轉(zhuǎn)圈打印和“之”字打印,兩道題的基本思路是一致的,主要鍛煉的是代碼實(shí)現(xiàn)技巧。在轉(zhuǎn)圈打印中,通過左上點(diǎn)和右下點(diǎn)就能標(biāo)記出一個(gè)矩陣;“之”字打印中,對(duì)于左邊變化的判斷是需要熟練的。

1.轉(zhuǎn)圈打印矩陣

#include "Array_matrix8_1.h"#include "iostream"using namespace std;#define N 4#define M 4Array_matrix8_1::Array_matrix8_1(){    //ctor}Array_matrix8_1::~Array_matrix8_1(){    //dtor}/*    不要糾結(jié)于坐標(biāo)怎么上下左右動(dòng)    4個(gè)變量標(biāo)記一個(gè)矩陣,4個(gè)while循環(huán)*/void PRintEdge(int mat1[N][M],int ro1,int ro2,int co1,int co2){    int cur1=co1;    int cur2=ro1;    while(cur1!=co2){   //***可直接用“!=”減少多余的考慮        cout<<mat1[ro1][cur1]<<" ";        cur1++;    }    while(cur2!=ro2){        cout<<mat1[cur2][co2]<<" ";        cur2++;    }    while(cur1!=co1){        cout<<mat1[ro2][cur1]<<" ";        cur1--;    }    while(cur2!=ro1){        cout<<mat1[cur2][co1]<<" ";        cur2--;    }}void spiralOrderPrint(int mat[N][M]){    int row1=0;         //左上點(diǎn)的橫坐標(biāo)    int row2=N-1;       //右下點(diǎn)的橫坐標(biāo)    int col1=0;    int col2=M-1;    while(row1<=row2&&col1<=col2)    {       // printEdge(mat,row1++,row2--,col1++,col2--);        printEdge(mat,row1,row2,col1,col2);        row1++;        row2--;        col1++;        col2--;    }}int main(){    int matrix[N][M]={1,2,3,4,5,6,7,8,4,3,2,1,8,7,6,5};    spiralOrderPrint(matrix);    return 0;}

2.“之”字打印

#include%20"Array_matrix8_3.h"#include%20"iostream"using%20namespace%20std;#define%20N%204#define%20M%204Array_matrix8_3::Array_matrix8_3(){%20%20%20%20//ctor}Array_matrix8_3::~Array_matrix8_3(){%20%20%20%20//dtor}void%20print_level(int%20ma[N][M],int%20ro1,int%20ro2,int%20co1,int%20co2,bool%20fl){%20%20%20%20if(fl){%20%20%20%20%20%20%20%20while(ro1!=ro2+1){%20%20%20%20%20%20%20%20%20%20%20%20cout<<ma[ro1++][co1--]<<"%20";%20%20%20%20%20%20%20%20}%20%20%20%20}else{%20%20%20%20%20%20%20%20while(ro2!=ro1-1){%20%20%20%20%20%20%20%20%20%20%20%20cout<<ma[ro2--][co2++]<<"%20";%20%20%20%20%20%20%20%20}%20%20%20%20}}void%20Zhizi_Print(int%20mat[N][M]){%20%20int%20row1=0;%20%20//(row1,col1)橫向走的坐標(biāo)%20%20%20(row2,col2)縱向走的坐標(biāo)%20%20int%20row2=0;%20%20int%20col1=0;%20%20int%20col2=0;%20%20int%20endrow=N-1;%20%20int%20endcol=M-1;%20%20bool%20flag=false;%20%20while(row1!=endrow+1){%20%20%20%20print_level(mat,row1,row2,col1,col2,flag);%20%20%20%20row1=%20col1==endcol%20?%20row1+1:row1;%20%20%20%20%20%20%20//如果走到的最后一列橫坐標(biāo)加1%20%20%20%20col1=%20col1==endcol%20?%20col1%20%20:col1+1;%20%20%20%20%20//如果沒有走到最后一列縱坐標(biāo)加1%20%20%20%20col2=%20row2==endrow%20?%20col2+1:col2;%20%20%20%20row2=%20row2==endrow%20?%20row2%20%20:row2+1;%20%20%20%20flag=%20!flag;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//flag==true%20:右上%20->左下,flag==false%20:左下%20->右上%20%20}}int%20main(){%20%20%20%20int%20matrix[N][M]={%20{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};%20%20%20%20Zhizi_Print(matrix);%20%20%20%20return%200;


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄄城县| 石首市| 嘉祥县| 平和县| 海林市| 永春县| 合作市| 滁州市| 新宁县| 神农架林区| 哈尔滨市| 东明县| 武平县| 平湖市| 兴化市| 丹东市| 莱芜市| 杭州市| 青铜峡市| 二手房| 慈利县| 通河县| 宿松县| 墨竹工卡县| 元谋县| 廊坊市| 合川市| 莎车县| 新乡县| 含山县| 长寿区| 罗平县| 宜川县| 堆龙德庆县| 都兰县| 北碚区| 育儿| 通城县| 台北市| 德州市| 温宿县|