ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C 程序:打印金字塔和图案 > 原文: [https://www.programiz.com/c-programming/examples/pyramid-pattern](https://www.programiz.com/c-programming/examples/pyramid-pattern) #### 在此示例中,您将学习在 C 编程中打印半金字塔,倒金字塔,全金字塔,倒全金字塔,帕斯卡三角形和弗洛伊德三角形。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C `if...else`语句](/c-programming/c-if-else-statement) * [C `for`循环](/c-programming/c-for-loop) * [C `while`和`do...while`循环](/c-programming/c-do-while-loops) * [C `break`和`continue`](/c-programming/c-break-continue-statement) * * * 这是您在此页面中找到的程序列表。 | C 示例 | | --- | | `*`的半金字塔 | | 数字半金字塔 | | 字母的半金字塔 | | `*`的倒置半金字塔 | | 倒置半金字塔 | | `*`的完整金字塔 | | 数字的完整金字塔 | | `*`的倒金字塔 | | 帕斯卡三角形 | | 弗洛伊德三角形 | * * * ### 示例 1:`*`的半金字塔 ```c * * * * * * * * * * * * * * * ``` **C 程序** ```c #include <stdio.h> int main() { int i, j, rows; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; ++i) { for (j = 1; j <= i; ++j) { printf("* "); } printf("\n"); } return 0; } ``` * * * ### 示例 2:数字的半金字塔 ```c 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 ``` **C 程序** ```c #include <stdio.h> int main() { int i, j, rows; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; ++i) { for (j = 1; j <= i; ++j) { printf("%d ", j); } printf("\n"); } return 0; } ``` * * * ### 示例 3:字母的半金字塔 ```c A B B C C C D D D D E E E E E ``` **C 程序** ```c #include <stdio.h> int main() { int i, j; char input, alphabet = 'A'; printf("Enter an uppercase character you want to print in the last row: "); scanf("%c", &input); for (i = 1; i <= (input - 'A' + 1); ++i) { for (j = 1; j <= i; ++j) { printf("%c ", alphabet); } ++alphabet; printf("\n"); } return 0; } ``` * * * ### 示例 4:`*`的倒置半金字塔 ```c * * * * * * * * * * * * * * * ``` **C 程序** ```c #include <stdio.h> int main() { int i, j, rows; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = rows; i >= 1; --i) { for (j = 1; j <= i; ++j) { printf("* "); } printf("\n"); } return 0; } ``` * * * ### 示例 5:数字的倒置金字塔 ```c 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 ``` **C 程序** ```c #include <stdio.h> int main() { int i, j, rows; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = rows; i >= 1; --i) { for (j = 1; j <= i; ++j) { printf("%d ", j); } printf("\n"); } return 0; } ``` * * * ### 示例 6:`*`的完整金字塔 ```c * * * * * * * * * * * * * * * * * * * * * * * * * ``` **C 程序** ```c #include <stdio.h> int main() { int i, space, rows, k = 0; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; ++i, k = 0) { for (space = 1; space <= rows - i; ++space) { printf(" "); } while (k != 2 * i - 1) { printf("* "); ++k; } printf("\n"); } return 0; } ``` * * * ### 示例 7:数字的完整金字塔 ```c 1 2 3 2 3 4 5 4 3 4 5 6 7 6 5 4 5 6 7 8 9 8 7 6 5 ``` **C 程序** ```c #include <stdio.h> int main() { int i, space, rows, k = 0, count = 0, count1 = 0; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; ++i) { for (space = 1; space <= rows - i; ++space) { printf(" "); ++count; } while (k != 2 * i - 1) { if (count <= rows - 1) { printf("%d ", i + k); ++count; } else { ++count1; printf("%d ", (i + k - 2 * count1)); } ++k; } count1 = count = k = 0; printf("\n"); } return 0; } ``` * * * ### 示例 8:`*`的倒置金字塔 ```c * * * * * * * * * * * * * * * * * * * * * * * * * ``` **C 程序** ```c #include <stdio.h> int main() { int rows, i, j, space; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = rows; i >= 1; --i) { for (space = 0; space < rows - i; ++space) printf(" "); for (j = i; j <= 2 * i - 1; ++j) printf("* "); for (j = 0; j < i - 1; ++j) printf("* "); printf("\n"); } return 0; } ``` * * * ### 示例 9:帕斯卡三角 ```c 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ``` **C 程序** ```c #include <stdio.h> int main() { int rows, coef = 1, space, i, j; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 0; i < rows; i++) { for (space = 1; space <= rows - i; space++) printf(" "); for (j = 0; j <= i; j++) { if (j == 0 || i == 0) coef = 1; else coef = coef * (i - j + 1) / j; printf("%4d", coef); } printf("\n"); } return 0; } ``` * * * ### 示例 10:弗洛伊德三角 ```c 1 2 3 4 5 6 7 8 9 10 ``` **C 程序** ```c #include <stdio.h> int main() { int rows, i, j, number = 1; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; i++) { for (j = 1; j <= i; ++j) { printf("%d ", number); ++number; } printf("\n"); } return 0; } ```