[問題] 用*排出三角形

看板C_and_CPP作者 (ming)時間14年前 (2012/01/27 17:30), 編輯推噓3(3018)
留言21則, 8人參與, 最新討論串1/2 (看更多)
我在課本上做到一題畫出三角形的 像這樣↓ * ** *** **** ***** ****** 課本上的程式是這樣↓ 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

01/27 17:34, , 1F
空白的部分再寫一個for放在for-j的上面 for-i的裡面
01/27 17:34, 1F

01/27 17:37, , 2F
小建議,貼程式碼用置頂內的網址貼會更好
01/27 17:37, 2F

01/27 17:42, , 3F
你用紙筆先自己模擬一下電腦會怎麼跑吧,看迴圈如何運作
01/27 17:42, 3F

01/27 18:02, , 4F
我比較搞不懂的地方是 為什麼我改成五的地方
01/27 18:02, 4F

01/27 18:03, , 5F
並沒有跑出五顆星 而是只有一顆星
01/27 18:03, 5F

01/27 18:40, , 6F
所以才會請你用紙筆模擬看看,看你改了以後的code會怎麼跑
01/27 18:40, 6F

01/27 19:39, , 7F
注意括號
01/27 19:39, 7F

01/27 20:25, , 8F
建議在for迴圈後就算只有一行,也要用括號括起來~~
01/27 20:25, 8F

01/27 21:08, , 9F
其實只要有縮排 for只有一行不加{}也還好
01/27 21:08, 9F

01/27 21:41, , 10F
課本上的程式這樣寫? 這什麼課本...
01/27 21:41, 10F

01/27 22:05, , 11F
加上{}是良好習慣啊,不能保證以後不會再增加
01/27 22:05, 11F

01/27 22:57, , 12F
課本是洪維恩寫的c語言教學手冊!! 原PO本身是電機的
01/27 22:57, 12F

01/27 22:58, , 13F
因為大一沒有修得很好,在大二的時候覺得該是好好把
01/27 22:58, 13F

01/27 22:59, , 14F
把C語言修好 以後自己或許會用到!!
01/27 22:59, 14F

01/27 23:00, , 15F
謝謝stimin其實我已在紙上寫好幾次了 現在終於有比
01/27 23:00, 15F

01/27 23:01, , 16F
較懂了 謝謝你 我們老師也是這樣教我們的!!
01/27 23:01, 16F

01/28 03:35, , 17F
我覺得縮排問題比較大 我翻了一下課本(第三版的)
01/28 03:35, 17F

01/28 03:36, , 18F
發現你沒有忠實呈現課本上面的縮排....
01/28 03:36, 18F

01/28 04:52, , 19F
嗯,這題之前寫過詳解 http://0rz.tw/lpqzh 參考看看.
01/28 04:52, 19F

01/30 15:48, , 20F
我是完全照課本的縮排 我的是第四版 可以去看看
01/30 15:48, 20F

01/30 16:09, , 21F
確實你的縮排不太好,在for裡面的可以加上tab比較好
01/30 16:09, 21F
文章代碼(AID): #1F8cx0C3 (C_and_CPP)
文章代碼(AID): #1F8cx0C3 (C_and_CPP)