C语言实现“空心”正方形图案输出的程序解析

        我们可以利用循环结构和条件判断语句来绘制各种图形。下面,我将对一个通过while循环和嵌套for循环实现“空心”正方形输出的C语言代码进行详细解析。

#include <stdio.h>int main() {int a;while (scanf("%d", &a) != EOF) { // 输入循环,直到遇到文件结束符EOF// 外层循环控制行数,即正方形的边长for (int i = 0; i < a; i++) {// 内层循环控制每行的列数,同样为正方形的边长for (int j = 0; j < a; j++) {// 使用条件判断语句来决定是否输出星号或空格if (i == 0 || i == a - 1 || j == 0 || j == a - 1) {// 当位于正方形的边界(第一行、最后一行、第一列或最后一列)时,输出星号*printf("* ");}else {// 否则,在内部区域(非边界位置)输出空格,形成“空心”效果printf("  ");}}// 每完成一行的输出后换行,以便开始下一行的输出printf("\n");}}return 0; // 程序正常执行完毕,返回0
}

        此段C语言程序的核心逻辑是根据输入的整数a生成一个边长为a的“空心”正方形。它首先通过外层for循环遍历正方形的每一行,然后内层for循环负责打印出该行的每一个元素。在内层循环中,通过条件判断语句确定当前坐标点是否位于正方形的边界上,如果是,则输出星号(*);否则,输出空格。这样就形成了一个只在边界上有星号的“空心”正方形。

打印结果:

假设我们输入 5 作为正方形的边长,那么程序将会打印如下形式的“空心”正方形:

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

通过简单的逻辑判断和循环控制,就能够轻松实现复杂的图形绘制任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unknown encoder ‘libmp3lame

环境&#xff1a; macos m1 &#xff0c; python3.10.x 背景 做视频切片&#xff0c; 使用moviepy 中VideoFileClip进行截取视频。 报错&#xff1a; Unknown encoder libmp3lameThe audio export failed because FFMPEG didnt find the specified codec for audio encoding …

【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】

请阅读【嵌入式开发学习必备专栏 】 文章目录 问题小结栈未对齐 经过几天的调试&#xff0c;成功将rt-thead 移植到 RA4M2&#xff08;Cortex-M33 核&#xff09;上&#xff0c;thread 和 shell 命令已经都成功支持。 问题小结 在完成 rt-thread 代码 Makefile 编译系统搭建…

Django开发_19_form表单前后端关联(1)

实例分析&#xff0c;过程使用URL反向解析知识&#xff1a; Django开发_12_URL反向解析、重定向-CSDN博客y 一、实例代码 (一)主路由urls.py: path("work4/", include("work4_app.urls",namespace"work4")), (二)app内urls.py: from djang…

利用大数据靶向肿瘤细胞的基因突变

在亚利桑那健康科学大学&#xff0c;研究人员正在应用大量数据&#xff0c;试图更多地了解这种突变、其变异以及任何可能有助于他们治疗患者的相关因素。 癌症的潜在原因很多&#xff0c;从食物和环境到创伤和感染。在遗传学方面&#xff0c;研究人员发现&#xff0c;有一种基因…

uniapp app更新

uniapp app更新 这个版本要随之增加&#xff0c;不然刚更新时直接用app, 新包增加的那些页面跳转会有问题&#xff0c;不能跳新的页面 //app更新检测 updataApp(){const that this;uni.showLoading({title:加载中...})plus.runtime.getProperty(plus.runtime.appid, functio…

Centos7.6之禅道开源版17.6.1安装记录

Centos7.6之禅道开源版17.6.1安装记录 文章目录 Centos7.6之禅道开源版17.6.1安装记录1. 下载2. 安装3. 登录4. 连接数据库1. 本地连接2. 远程连接1. 开启远程访问用户2. 更改mysql绑定的主机3. 重启Apache与MySQL服务 4. 常用命令1. Apache和Mysql常用命令2. 其他 1. 下载 官网…

C语言中的extern:全局变量和函数的声明与使用

概念&#xff1a; 在C语言中&#xff0c;extern是一个关键字&#xff0c;用于声明全局变量和函数。它告诉编译器该变量或函数在其他源文件中定义&#xff0c;让编译器知道在链接时需要从其他源文件中寻找其定义。extern关键字不会分配内存&#xff0c;只是告诉编译器该变量或函…

归并排序-逆序对

之前的文章里有写归并排序的最小和问题&#xff08;归并排序-最小和-CSDN博客&#xff09;&#xff0c;逆序对问题其实跟最小和问题的本质一样&#xff1a; 逆序对&#xff1a;给定一个数据&#xff0c;从左往右&#xff0c;从第一个数开始&#xff0c;它右边每一个比它小的都…

解密:消息中间件的选择与使用:打造高效通信枢纽

目录 第一章&#xff1a;消息中间件介绍 1.1 什么是消息中间件 1.2 消息中间件的作用 1.3 消息中间件的分类 第二章&#xff1a;消息中间件的选择标准 2.1 性能 2.2 可靠性 2.3 可扩展性 2.4 易用性 2.5 社区支持 2.6 成本 第三章&#xff1a;常见的消息中间件对比…

解决 [Vue warn]:Avoid mutating a prop directly 警告

错误信息 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “xxx” 错误原因 所有的 prop 都使得…

图像分割的作用以及运用领域

图像分割 图像分割是数字图像处理领域的一种技术&#xff0c;其主要目的是将数字图像划分成多个部分或区域&#xff0c;以便于更简单、有效地分析和理解图像内容。在图像分割过程中&#xff0c;图像被分解成若干互不重叠的区域&#xff0c;这些区域通常对应于实际场景中的各种…

推荐几款AI绘图软件且提供psd源文件

AI绘图软件通常指的是支持人工智能辅助创作的绘图和设计工具&#xff0c;能够帮助用户更高效地进行图像、插画和设计工作。以下是一些具有AI功能且可以导出或处理PSD格式文件&#xff08;即Photoshop源文件格式&#xff09;的软件&#xff1a; Adobe Photoshop Adobe Photoshop…

Prometheus配置与管理

1 配置文件 Prometheus通过命令行和配置文件进行配置&#xff0c;命令行配置不能修改的系统参数&#xff08;例如存储位置&#xff0c;要保留在磁盘和内存中的数据量等&#xff09;&#xff0c;但配置文件定义了与抓取作业及其实例相关的所有内容&#xff0c;以及哪些规则文件…

2024阿里云优惠,云服务器61元一年起

2024年最新阿里云主机价格&#xff0c;最低配置2核2G3M起步&#xff0c;只要61元一年&#xff0c;还可以在阿里云CLUB中心领券 aliyun.club 专用满减优惠券。 1、云服务器ECS经济型e实例2核2G、3M固定带宽99元一年 2、轻量应用服务器2核2G3M带宽轻量服务器一年61元 3、阿里云轻…

ECMAScript日常总结--ES2019(ES10)

ECMAScript日常总结–ES2019(ES10) 文章目录 ECMAScript日常总结--ES2019(ES10)1. Object.fromEntries() -- 将键值对的列表转换为对象2. Array.prototype.flat() -- 用于将嵌套数组&#xff08;多维数组&#xff09;扁平化为一维数组3. String.prototype.trimStart() 和 Strin…

蓝桥杯备战——3.定时器前后台

1.STC15F2k61S2的定时器 阅读STC15系列的手册&#xff0c;我们可以看到跟STC89C52RC的定时器还是有不同之处的&#xff1a; 由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了 在定时器0/1模式上也可以设置为16位自动重装载。 另外需要注意IAP15F2K61S2只有…

使用 SpringBoot 读取 YAML 文件并将数据转为 Map,在嵌套 Map 中递归获取指定层级下的所有数据

文章目录 引入认识 YAML 格式规范定义脱敏规则格式主要逻辑实现优化方法完整工具类 引入 在项目中遇到一个需求&#xff0c;需要对交易接口返回结果中的指定字段进行脱敏操作&#xff0c;但又不能使用AOP注解的形式&#xff0c;于是决定使用一种比较笨的方法&#xff1a; 首先…

nvm安装的node,脚手架安装 vue 项目时报错

npm install -g vue/cli 时报错 解决办法 //修改npm的资源镜像: npm config set registry http://registry.npm.taobao.org重新脚手架安装 npm install -g vue/cli成功到下一步&#xff0c;当执行&#xff1a;vue create my-vue-demo时又报新的错 原因&#xff1a;【HTTPS …

part2. jdk9/10/11/12/16新特性详解

1.jdk9 1.1 模块化机制 定义模块&#xff1a;module-info.java module com.newfeature.test {requires java.se;requires lombok;requires junit; }package com.newfeature.test;import java.lang.reflect.Field;public class Main {public static void main(String[] args) …

mysql字符集

一、查看字符集 //查看数据库字符集 SHOW CREATE DATABASE database; //查看表字符集 SHOW CREATE DATABASE table; //查看指定表全部字段字符集 show full columns from table; 二、修改字符集 将超出utf8字符集范围的字符比如&#x2aa27;插入到utf8字符集的字段上会…