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

2025-03-18 学习记录--C/C++-PTA 习题4-9 打印菱形图案

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

习题4-9 打印菱形图案

本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。

输入格式:
输入在一行中给出一个正的奇数n。

输出格式:
输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。

输入样例:

7

输出样例:

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

二、解题步骤 ⭐️

下面以n=7举例:🦋

  • 1步 🎀、外层循环1(从1n/2+1,即前4行):金字塔层数。则:for循环,从1遍历到n/2+1
  • 2步 🎀、内层循环1:打印 每一层 第一个字符前的空格。则:
    • 层 打印6个空格,
    • 层打印4个空格,
    • 层打印2个空格,
    • 层打印0个空格;
  • 3步 🎀、内层循环2:把 字符和一个空格 看作整体,即"*_"。则:
    • 层 需要打印个整体"*_",
    • 层需要打印个整体"*_",
    • 层需要打印个整体"*_",
    • 层需要打印个整体"*_";
  • 4步 🎀、内层循环结束后,换行,进入下一层的打印。
  • 5步 🎀、外层循环2(从2n/2+1,即后3行):金字塔层数。则:for循环,从2遍历到n/2+1
  • 6步 🎀、内层循环3:打印 每一层 第一个字符前的空格。则:
    • 层 打印2个空格,
    • 层打印4个空格,
    • 层打印6个空格;
  • 7步 🎀、内层循环4:把 字符和一个空格 看作整体,即"*_"。则:
    • 层 需要打印个整体"*_",
    • 层需要打印个整体"*_",
    • 层需要打印个整体"*_";
  • 8步 🎀、内层循环结束后,换行,进入下一层的打印。

三、代码(C语言)⭐️

#include <stdio.h>  // 包含标准输入输出库,用于使用scanf和printf等函数int main() {int n;  // 定义变量n,用于存储用户输入的整数scanf("%d", &n);  // 从用户输入中读取一个整数,赋值给n//【外层循环1】打印上半部分(包括中间行)for (int i = 1; i <= n / 2 + 1; i++) {//【内层循环1】打印每行前面的空格for (int j = 2 * i - 2; j < n - 1; j++) {printf(" ");}//【内层循环2】打印每行的星号for (int k = 1; k <= 2 * i - 1; k++) {printf("* ");}printf("\n");  // 换行}//【外层循环2】打印下半部分(不包括中间行)for (int i = 2; i <= n / 2 + 1; i++) {//【内层循环3】打印每行前面的空格for (int j = 2; j < 2 * i; j++) {printf(" ");}//【内层循环4】打印每行的星号for (int k = 2 * i - 1; k <= n; k++) {printf("* ");}printf("\n");  // 换行}return 0;  // 程序正常结束
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

【注意 📢 】 结合以下文章一起看:🦋

  • 练习2-3 输出倒三角图案
  • 练习5-3 字符金字塔
  • 习题5-8 空心的数字金字塔

http://www.mrgr.cn/news/94808.html

相关文章:

  • Ubuntu快速安装使用gRPC C++
  • Vala语言基础知识-源文件和编译
  • 基于 Python 爬取 TikTok 搜索数据 Tiktok爬虫(2025.3.17)
  • pyyaml_include 2.x 版本使用说明
  • SpringBoot第三站:配置嵌入式服务器使用外置的Servlet容器
  • S32K144入门笔记(十五):ADC(转换器部分)的解读
  • 51单片机指令系统入门
  • Vala教程-第一个程序(Hello world)
  • JDBC数据库连接池技术详解——从传统连接方式到高效连接管理
  • cesium 实现万级管网数据渲染,及pickImageryLayerFeatures原生方法改写
  • [OpenGL]使用OpenGL实现基于物理的渲染模型PBR(中)
  • CI/CD 全流程全解
  • 【AVRCP】Notification PDUs 深入解析与应用
  • 【协作开发】低成本一键复刻github的gitea
  • 洛谷 P1115 最大子段和(前缀和详解)c++
  • NumPy系列 - 创建矩阵
  • 安全无事故连续天数计算,python 时间工具的高效利用
  • 自然语言处理(2)—— NLP之百年风雨路
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能
  • 游戏立项时期随笔记录