[爆卦]巢狀迴圈範例是什麼?優點缺點精華區懶人包

為什麼這篇巢狀迴圈範例鄉民發文收入到精華區:因為在巢狀迴圈範例這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者ming712800 (ming)看板C_and_CPP標題[問題] 用*排出三角形時間Fri ...


我在課本上做到一題畫出三角形的

像這樣↓

*
**
***
****
*****
******

課本上的程式是這樣↓
01 #include <stdio.h>
02 #include <stdlib.h>
03 int main (void)
04 {
05 int i, j; /* 設定迴圈出值 */
06
07 for (i = 1; i <= 6; i++) /* 外層迴圈決定哪一列要印星號 */
08 {
09 for (j = 1; j <= i; j++) /* 內層迴圈印出*星號 */
10
11 printf ("*");
12 printf ("\n");
13 }
14
15 system ("pause");
16 return 0;
17 }

課本又解釋外層迴圈用來控制列印行數(迴圈控制變數i)
而內層迴圈則是用來控制每一行列印的星號數目(迴圈控制變數j)

一開始看課本這樣解釋 應該是說
i用控制要列印出幾行 對吧
則j是用來控制每一行要印幾個星號數

後來我有想到 那菱形的可以做一下試試看

我一開始是這樣想的
\ 代表空格

\\\\\*
\\\\***
\\\*****
\\*******
\**********
************

我只要寫出\的程式
在寫*的程式應該就好了

但是我後來有寫出\的程式 但是也遇到for迴圈上的邏輯問題

這是跟上面的程式一樣的東西
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int i, j;

for (i = 5; i <= 10; i++)
{
for (j = 5; j <= i; j++)

printf ("*");
printf ("\n");
}

system ("pause");
return 0;
}

這個印出的圖形也是
*
**
***
****
*****
******

重點來了我當初想說 i是控制行數
j是控制星數目 那我是不是把j改成5
那是不是他第一行就會印出5個星
結果沒有

我想 這個程式 是不是跑幾次就出現幾個星
還是怎樣!!有點想不通

請大家指點 謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.128.9
tjjh89017:空白的部分再寫一個for放在for-j的上面 for-i的裡面 01/27 17:34
diabloevagto:小建議,貼程式碼用置頂內的網址貼會更好 01/27 17:37
stimim:你用紙筆先自己模擬一下電腦會怎麼跑吧,看迴圈如何運作 01/27 17:42
ming712800:我比較搞不懂的地方是 為什麼我改成五的地方 01/27 18:02
ming712800:並沒有跑出五顆星 而是只有一顆星 01/27 18:03
stimim:所以才會請你用紙筆模擬看看,看你改了以後的code會怎麼跑 01/27 18:40
ericinttu:注意括號 01/27 19:39
flydragon198:建議在for迴圈後就算只有一行,也要用括號括起來~~ 01/27 20:25
tjjh89017:其實只要有縮排 for只有一行不加{}也還好 01/27 21:08
manoeuvre:課本上的程式這樣寫? 這什麼課本... 01/27 21:41
diabloevagto:加上{}是良好習慣啊,不能保證以後不會再增加 01/27 22:05
ming712800:課本是洪維恩寫的c語言教學手冊!! 原PO本身是電機的 01/27 22:57
ming712800:因為大一沒有修得很好,在大二的時候覺得該是好好把 01/27 22:58
ming712800:把C語言修好 以後自己或許會用到!! 01/27 22:59
ming712800:謝謝stimin其實我已在紙上寫好幾次了 現在終於有比 01/27 23:00
ming712800:較懂了 謝謝你 我們老師也是這樣教我們的!! 01/27 23:01
manoeuvre:我覺得縮排問題比較大 我翻了一下課本(第三版的) 01/28 03:35
manoeuvre:發現你沒有忠實呈現課本上面的縮排.... 01/28 03:36
tropical72:嗯,這題之前寫過詳解 http://0rz.tw/lpqzh 參考看看. 01/28 04:52
ming712800:我是完全照課本的縮排 我的是第四版 可以去看看 01/30 15:48
diabloevagto:確實你的縮排不太好,在for裡面的可以加上tab比較好 01/30 16:09

你可能也想看看

搜尋相關網站