用C程序编写一个程序,打印星号正金字塔

用C程序编写一个程序,打印星号正金字塔

image-20250718110520575在 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;
}

image-20250718150925071image-20250718150945043📊 程序运行结果代码解析

  • 外层循环 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=1n(ni)+i=1ni=i=1nn=n2

因此时间复杂度为 O(n²)


💾 空间复杂度分析

  • 程序仅使用常数个整型变量,空间复杂度为 O(1)

📌 总结

项目内容
输出效果右对齐实心三角形,每星号后带空格
时间复杂度O(n²)
空间复杂度O(1)
技术点嵌套循环,条件判断,格式化输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值