列印迴圈換行 C 迴圈 方陣佇列,內外層疊

2021-10-14 17:48:07 字數 1688 閱讀 3989

8.c++雙層迴圈

8.1 雙層 for 迴圈

掌握了for迴圈或while迴圈之後,如果讓你列印n個 ' * ' ,相信你很快就能完成任務。下面我們做乙個更具有挑戰性的任務。

1.列印下面由'*'構成的直角三角形。

***************
觀察上面的直角三角形你會發現:圖案一共有5行,其中第1行有1顆星,第2行有2顆星,第3行有3顆星,第4行有4顆星,第5行有5顆星。

不知道你發現沒有,每一行星星的數量與這一行的行號之間有個規律...

數量與行號是相同的!

找到這個規律又該如何列印出這個圖案呢?

下圖是乙個雙層for迴圈的巢狀寫法,一共用到2個迴圈結構,每個for迴圈的作用都不一樣:外層for迴圈控制要列印的行號,內層for迴圈控制每一行列印星星的數量。每一行列印結束之後必須要換行。這個寫法中的關鍵之處在於內層for迴圈中的判斷條件:j<=i。 這個表示式控制了每一行的星星數量。

2.如果你已經完成了上面這個任務可以再來試試下面這個,列印下面這個圖案,這次每一行星星的數量是逐行遞減的。

***************
上面的三角形中隱藏的規律你是否發現了呢?可以先動手驗證一下你的想法是否正確。

下圖中我們只是在內層的for迴圈中做了一些改變,首先 j 的初始值由0變為5,判斷條件也相應的發生了變化,最後讓 j 每一行遞減1來控制每一行星星的數量。

怎麼樣,這個任務沒難住你吧?

3.下面再提高一些難度挑戰一下自己,三角形圖案變成了右對齊:

要想完成這個任務,需要換個思路,我們可以把每一行看成是幾個空白字元+幾個星星組成的。比如第一行是4個空格+1顆星星,第二行是3個空格+2顆星星...,我們只需要通過迴圈去控制空白字元的數量和星星的數量就可以了。我們可以分別用乙個for迴圈列印空白字元,用另乙個for迴圈列印星星。

4.最後我們來做乙個有趣的任務,列印九九乘法口訣表:

首先觀察乘法口訣表找到其中的規律:1.每一行中乘號左邊的數字依次遞增,但始終小於乘號右邊的數字。2.每一行乘號右邊的數字不變,並且等於每一行的行號。

只要理解並掌握這個規律你就可以輕鬆完成這個任務了:

一次沒有完成也沒關係,多動手練習相信你就可以發現其中的規律並掌握它。

8.2 雙層 while 迴圈

上面的4道例題,也可以用雙層while迴圈來完成,怎麼樣有沒有興趣試一下?

利用迴圈鍊錶列印拉丁方陣

拉丁方陣就是乙個n n 2 n 9 的方陣,每個格仔裡存放乙個數字,要求每一橫行每一縱行數字不重複。例如 1 22 1 n要求由使用者輸入 c語言實現 include include typedef struct ldla la newlist int void print la int intma...

佇列 迴圈佇列(C )

定義 佇列 queue 是只允許在一端進行插入操作,在另一端進行刪除操作的線性表。遵守先進先出的規則。資料儲存方式 順序儲存結構 這種結構事先要基本確定佇列的大小,不支援動態分配儲存空間,所以插入和刪除元素比較省時,但是會造成空間的浪費。為了節省空間,引入了迴圈佇列,本質上也是順序儲存結構。鏈式儲存...

c 迴圈佇列

wang 程式設計日記一 實現迴圈佇列 類模板方便以後使用 首先是虛基類,相當於宣告了幾個佇列的基本功能 template t class queue virtual bool enqueue const t x 0 virtual bool dequeue t x 0 virtual bool g...