当前位置: 首页 > news >正文

《C语言实现金字塔图案打印》

在这里插入图片描述

🚀个人主页:BabyZZの秘密日记
📖收入专栏:C语言练习题分享


🌍文章目入

    • 程序代码
    • 程序功能
    • 程序分析
      • 外层循环
      • 内层循环
      • 输出结果
    • 示例运行
    • 总结

在学习编程的过程中,打印图案是一个非常有趣的练习,它可以帮助我们更好地理解循环和嵌套结构的使用。今天,我们将通过一个简单的C语言程序,实现一个金字塔图案的打印。

程序代码

#include <stdio.h>

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = n; j - i - 1 > 0; j--)
            {
                printf(" ");
            }
            for (int k = 0; k <= i; k++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

程序功能

这个程序的功能是根据用户输入的数字n,打印出一个高度为n的金字塔图案。金字塔的每一层由*组成,每一层的*数量逐层增加,同时每一层的*前面有适当数量的空格,以保证图案的对称性。

程序分析

外层循环

程序的核心是一个while循环,它通过scanf函数不断读取用户输入的数字n,直到用户输入结束标志(通常是Ctrl+ZCtrl+D,取决于操作系统)。这种设计使得程序可以连续处理多个输入,而不需要每次重新运行程序。

内层循环

对于每个输入的n,程序通过两层嵌套的for循环来打印金字塔的每一层。

  1. 打印空格
    第一层for循环的作用是打印每一行前面的空格。空格的数量取决于当前行号i和金字塔的总高度n。具体来说,空格的数量为n - i - 1。这样可以保证金字塔的对称性,使得每一行的*都居中对齐。

  2. 打印*
    第二层for循环的作用是打印每一行的*。每一行的*数量为i + 1,即随着行号的增加,*的数量也逐层增加。

输出结果

每打印完一行后,程序通过printf("\n")换行,从而实现金字塔的逐行打印。

示例运行

假设用户输入5,程序的输出如下:

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

可以看到,金字塔的每一层都居中对齐,且*的数量逐层增加,形成了一个美观的金字塔图案。

总结

这个程序虽然简单,但却很好地展示了C语言中循环结构和嵌套循环的使用。通过合理地控制空格和*的数量,我们可以实现各种有趣的图案打印。在学习编程的过程中,多尝试类似的练习,可以加深对循环和条件语句的理解,提高编程能力。希望这个程序对你有所帮助!

http://www.dtcms.com/a/96394.html

相关文章:

  • 【新手初学】读取数据库数据
  • 服务器数据恢复—多块硬盘出现坏道导致raid5阵列崩溃的数据恢复案例
  • linux 常见命令使用介绍
  • python每日十题(13)
  • CentOS 7 部署RuoYi 项目
  • MES系统需要采集的数据及如何采集
  • Problem D: 抽象类
  • 【大模型】激活函数之SwiGLU详解
  • Windows 10更新失败解决方法
  • Linux 下安装和使用 Jupyter Notebook
  • 安全性测试(Security Testing)
  • CMake 简单使用总结
  • MCP 智能聊天助手示例项目
  • Day31-代码随想录-最大二叉树654+合并二叉树617+二叉搜索树中的搜索700
  • C 预处理器:编译前的文本魔法
  • 【安当产品应用案例100集】042-基于安当KADP实现机密文件安全流转
  • 一篇就够!Windows上Docker Desktop安装 + 汉化完整指南(包含解决wsl更新失败方案)
  • 状态码返回
  • 2025 年前端新趋势:拥抱 Web Component 与性能优化
  • 智能家居赋能宠物经济:未来宠物行业的另一片蓝海
  • 优雅处理拼音输入:jQuery实现中文输入法状态检测的最佳实践
  • mysql 索引
  • 蓝桥杯嵌入式第十二届程序设计题
  • 海康gdb流程
  • 【算法题讲解】45. 跳跃游戏 II
  • 如何选择适合你的美颜SDK?人脸美型功能对比与应用场景分析
  • C语言中的位域:节省内存的标志位管理技术
  • CTF类题目复现总结-[MRCTF2020]ezmisc 1
  • 交流电机类型及其控制技术
  • 淘宝商品数据清洗实战:从复杂JSON到结构化数据库(附Python脚本)