用C程序编写一个程序,打印星形正方形

用C程序编写一个程序,打印星形正方形

image-20250718102338282

在学习 C 语言的过程中,for 循环是非常基础且重要的知识点。今天我们用一个简单的例子——打印矩形,来深入理解嵌套循环的执行过程,并结合时间复杂度与空间复杂度,帮你从算法思维角度理解它。


🎯 目标

使用 C 语言循环语句,在控制台输出一个5行5列的矩形星号图案:

*****
*****
*****
*****
*****

📄 详细代码

#include <stdio.h>

int main() {
    int row, column;                      // 定义行和列两个变量
    int row_length = 5;                   // 总行数
    int column_length = 5;                // 每行的星号数量
    
    for (row = 1; row <= row_length; row++) {         // 外层循环控制行
        for (column = 1; column <= column_length; column++) {   // 内层循环控制每行的列
            printf("*");                                   // 每次打印一个星号
        }
        printf("\n");                                     // 每打印完一行,换行
    }
    
    return 0;
}

image-20250718145216886📊 运行结果

*****
*****
*****
*****
*****

image-20250718145235031⚙️ 代码解析

  • 外层循环(行)
    • row = 1row = 5,共执行 5次
  • 内层循环(列)
    • 每当执行一次外层循环,内层循环就完整执行一次,从 column = 1column = 5,每次都输出一个星号,共 5次
  • 换行
    • 每次内层循环结束后,执行一次 printf("\n"); 换行。

⏳ 时间复杂度分析

  • 外层循环执行 row_length 次。
  • 每次外层循环,内层循环执行 column_length 次。
  • 因此,总的执行次数为:
java


复制编辑
row_length × column_length = 5 × 5 = 25 次
  • 时间复杂度:

O(row_length×column_length)=O(n2) O(\text{row\_length} \times \text{column\_length}) = O(n^2) O(row_length×column_length)=O(n2)

如果我们认为行数与列数相同(即 n),可以简化为 O(n²)


💾 空间复杂度分析

  • 只使用了固定数量的变量(rowcolumnrow_lengthcolumn_length)。
  • 无论矩形多大,占用内存不会随着输入规模变化而变化。
  • 空间复杂度:

O(1) O(1) O(1)


📌 总结

项目分析
运行结果5行5列矩形
时间复杂度O(n²)
空间复杂度O(1)
使用的知识点嵌套 for 循环

🚀 思考延伸

  • 如果要打印矩形框而非实心矩形,代码应该如何修改?
  • 如果要支持动态输入行列呢?

这些问题都可以帮助你进一步深入理解循环与算法优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值