用C程序编写一个程序,打印星号正金字塔
在 C 语言中,循环和格式化输出的结合可以帮助我们绘制各种漂亮的图案。今天,我们通过打印一个带空格分隔的右对齐实心三角形,来练习嵌套循环和输出格式控制。
🎯 程序目标
打印一个高度为10行的右对齐实心三角形,每个星号后面带一个空格,使图形显得更整齐美观。
示例输出:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
📄 完整代码
#include <stdio.h>
int main() {
int row, column, spaces;
int row_length = 10;
for (row = 1; row <= row_length; row++) {
// 打印前导空格,使三角形右对齐
for (spaces = 0; spaces < row_length - row; spaces++) {
printf(" ");
}
// 打印每行星号,每个星号后带一个空格
for (column = 1; column <= row; column++) {
printf("* ");
}
printf("\n"); // 换行
}
return 0;
}

📊 程序运行结果代码解析
- 外层循环
row控制行数,共打印10行。 - 内层第一个循环
spaces负责打印前导空格,数量随行号递减,确保三角形右对齐。 - 内层第二个循环
column打印星号,每个星号后跟一个空格,保证视觉上星号间距均匀。 - 每行打印完成后换行。
⏳ 时间复杂度分析
- 外层循环执行
n次。 - 内层循环执行次数随行数递增,字符打印总量约为:
∑i=1n(n−i)+∑i=1ni=∑i=1nn=n2 \sum_{i=1}^n (n - i) + \sum_{i=1}^n i = \sum_{i=1}^n n = n^2 i=1∑n(n−i)+i=1∑ni=i=1∑nn=n2
因此时间复杂度为 O(n²)。
💾 空间复杂度分析
- 程序仅使用常数个整型变量,空间复杂度为 O(1)。
📌 总结
| 项目 | 内容 |
|---|---|
| 输出效果 | 右对齐实心三角形,每星号后带空格 |
| 时间复杂度 | O(n²) |
| 空间复杂度 | O(1) |
| 技术点 | 嵌套循环,条件判断,格式化输出 |


被折叠的 条评论
为什么被折叠?



