看板 C_and_CPP 關於我們 聯絡資訊
在下提供一種更簡單的思路: =================================== 假設我們要 n 層的金字塔好了,方便起見,我們規定行號 i (0 ~ n-1) Ex. n = 5 的金字塔: i ------------- 0 * 1 *** 2 ***** 3 ******* 4 ********* 第 0 行印出了 4 個空個,1 個 * 共 5 個 char 1 3 3 6 2 2 5 7 3 1 7 8 4 0 9 9 觀察發現每行總共印出的 char 數剛好是 n + i 然後第 i 行 的前 n-i-1 個 char 是空白,其餘為 * 號 ================================ 簡單 Code 實現: #include <stdio.h> int main (void) { int n, i, j; printf("你要幾層的金字塔:"); scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < n+i; j++) { (j < n-i-1) ? putchar(' ') : putchar('*'); } puts(""); } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.34.179
firejox:putchar("* "[(i < n-i-1)]); XDD 08/04 21:04
PkmX:putchar((i < n-i-1)["* "]); (誤) 08/04 21:10
xatier:XDD 08/05 10:51