Re: [問題] 金字塔製作

看板C_and_CPP作者 (喲)時間13年前 (2011/08/07 03:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《shile775 (笑看人生)》之銘言: : 這次是金字塔製作, : 下面是題目: : ====================== : 金字塔形共幾列:3 : * : *** : ***** : ====================== : 然後這是我想的程式: : printf("金字塔形共幾列:"); : scanf("%d", &no); : for(i = 1; i <=no; i+=2){ : for (j = 1; j <= no-i; j+=2) : putchar(' '); 這我會這樣想: 1. 輸入層數及階距(假設1),印出 * ** *** for (i=0; i<n; i++) { for (j=0; j<=i*s; j++) { putchar('*'); } putchar('\n'); } 可以把 n, s 設為不同的數字看看效果. # 2. 將 1. 程式上下翻過來,印出 ** * 需注意是想要印金字塔左上方補白部份. for (i=0; i<n; i++) { for (j=i*s+1; j<=(n-1)*s; j++) { putchar('*'); } putchar('\n'); } # 原問題問輸入層數輸出金字塔 * *** ***** 左上角空白帶換成 '?' 就是要產生 ?? ? 將金字塔左上角空白去掉,是 * *** ***** 可以將上述程式 2. 和 1. 合寫在一起. 二段程式大同小異, 將格式對應的部份抄在一起,並將階距整合一下: for (i=0; i<n; i++) { int j; for (j=i*s+1; j<=(n-1)*s; j++) { putchar(' '); } for (j=0; j<=i*s*2; j++) { putchar('*'); } putchar('\n'); } 可以換不同的 n, s 值看看效果. -- /yau -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.226.83 ※ 編輯: yauhh 來自: 59.112.226.83 (08/07 03:08)
文章代碼(AID): #1EFP2Zv7 (C_and_CPP)
文章代碼(AID): #1EFP2Zv7 (C_and_CPP)