牛客网刷题 | BC99 正方形图案

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正方形图案。

输入描述:

多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。

输出描述:

针对每行输入,输出用“*”组成的对应边长的正方形,每个“*”后面有一个空格。


思路 :

/*使用嵌套循环来解决这题

两层嵌套for循环 就和乘法口诀表差不多

由此可以看出,当进入第二层循环的时候,是从左往右打印当这五个*打印完成之后

换行操作,然后进入第一层循环然后继续判断,继续从左往右打印*直到循环结束

一开始我也不会写这种题目,理不清是怎么一回事

其实只要套入进去就行了,然后写完在VS里面调试一下就能明白大概是什么意思了。

*/


代码 1 :

/*使用嵌套循环来解决这题两层嵌套for循环 就和乘法口诀表差不多
由此可以看出,当进入第二层循环的时候,是从左往右打印当这五个*打印完成之后
换行操作,然后进入第一层循环然后继续判断,继续从左往右打印*直到循环结束
一开始我也不会写这种题目,理不清是怎么一回事
其实只要套入进去就行了,然后写完在VS里面调试一下就能明白大概是什么意思了。
*/# include <stdio.h>
int main (){int i = 0;while (scanf("%d",&i)!=EOF){for(int j = 1;j<=i;j++)//控制列{for(int n = 1;n<=i;n++)//控制行{printf("* ");}printf("\n");}} return 0;
}#include <stdio.h> // 包含标准输入输出库int main() // 主函数的开始
{int i = 0; // 定义一个整型变量i,用于存储用户输入的数字// 使用while循环读取用户输入,直到输入结束(EOF)while (scanf("%d",&i)!=EOF){// 外层循环控制列数,从1开始到用户输入的数字i结束for(int j = 1;j<=i;j++){// 内层循环控制行数,从1开始到用户输入的数字i结束for(int n = 1;n<=i;n++){printf("* "); // 打印一个星号和一个空格}printf("\n"); // 内层循环结束后,打印一个换行符,准备打印下一行}} return 0; // 程序正常结束
}

代码 2 :

#include<stdio.h>
int main()
{int x,i;while(scanf("%d",&x)!=EOF){for(i=1;i<=(x*x);i++){if(i%x==0){printf("*\n");}elseprintf("* ");}}return 0;
}#include<stdio.h> // 包含标准输入输出库int main() // 主函数的开始
{int x, i; // 定义两个整型变量x和i,x用于存储用户输入的数字,i用于循环计数// 使用while循环读取用户输入,直到输入结束(EOF)while(scanf("%d",&x)!=EOF){// 外层循环控制总的打印次数,即x的平方for(i=1; i<=(x*x); i++){// 判断当前打印的星号是否是一行的最后一个if(i%x==0) // 如果i能被x整除,说明是一行的最后一个星号{printf("*\n"); // 打印一个星号后换行,开始新的一行}else // 如果不是一行的最后一个星号printf("* "); // 打印一个星号后跟一个空格}}return 0; // 程序正常结束
}

代码 3 :

#include<stdio.h> // 包含标准输入输出库int main() // 主函数的开始
{int x; // 定义一个整型变量x,用于存储用户输入的数字,代表矩阵的边长// 使用while循环读取用户输入,直到输入结束(EOF)while(scanf("%d",&x)!=EOF){// 外层循环控制行,从1到xfor(int i=1; i<=x; i++){// 内层循环控制列,从1到xfor(int j=1; j<=x; j++){// 如果是列的最后一个星号,打印星号后换行if(j==x) printf("*\n");// 否则打印星号后跟一个空格else printf("* ");}}}// 主函数结束,返回0表示程序正常结束return 0;
}

这段代码通过两层嵌套循环来打印矩阵。

外层循环控制行,内层循环控制列。

在内层循环中,如果当前是列的最后一个元素(即j==x),则打印一个星号后换行;否则,打印一个星号后跟一个空格。

这样,每完成一行的打印后,就会自动换到下一行的开头,继续打印,直到整个矩阵打印完毕。


 扩展 :

  • 理解题目要求

    • 仔细阅读题目,弄清楚需要解决的问题是什么,输出的格式是什么样的。
  • 确定循环结构

    • 根据题目要求,确定需要几层循环。通常,每一层循环对应输出结构中的一个维度。
    • 例如,打印一个矩阵通常需要两层循环:外层循环控制行,内层循环控制列。
  • 设计循环变量

    • 为每一层循环定义一个循环变量,这个变量通常从1开始,到某个特定的值结束。
  • 编写循环体

    • 在循环体内编写需要执行的操作,比如打印字符、计算数值等。
    • 考虑循环体内的逻辑,比如何时换行、何时打印特定的字符等。
  • 处理边界条件

    • 考虑循环的起始和结束条件,以及循环变量的取值范围。
    • 特别注意循环的终止条件,避免无限循环。
  • 测试和调试

    • 编写完代码后,进行测试,检查输出是否符合预期。
    • 使用一些简单的测试用例,比如边界值,来验证代码的正确性。
    • 如果输出不正确,使用调试工具或打印语句来逐步跟踪代码的执行过程,找出问题所在。
  • 优化代码

    • 在确保代码能够正确运行的基础上,考虑是否可以优化循环结构或逻辑,使代码更加简洁高效。
  • 编写注释

    • 给关键的代码段添加注释,说明代码的功能和逻辑,便于他人阅读和理解。
  • 回顾和总结

    • 完成题目后,回顾整个解题过程,总结经验教训,提高解题能力。
  • 以打印乘法口诀表为例,可以这样思考:
  • 题目要求:打印一个乘法口诀表。
  • 循环结构:两层循环,外层控制行(乘数),内层控制列(被乘数)。
  • 循环变量:外层循环变量从1开始,到9结束;内层循环变量也从1开始,到9结束。
  • 循环体:在内层循环体内打印乘法表达式和结果,每完成一行后换行。
  • 边界条件:确保循环变量不超过9。
  • 测试和调试:使用几个简单的数字测试代码,比如输入1、2等。
  • 优化代码:考虑是否可以减少不必要的打印语句,使代码更加简洁。
  • 编写注释:在关键的循环和打印语句处添加注释,说明代码的作用。
  • 回顾和总结:思考如何改进代码,比如是否可以使用更少的循环或更简洁的表达式。

  

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

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

相关文章

使用Java和XxlCrawler获取各城市月度天气情况实践

目录 前言 一、历史数据获取 1、关于天气后报 2、信息界面分析 二、数据的提取开发 1、PageVo的定义 2、属性定义 3、实际信息抓取 三、信息抓取调试以及可能的问题 1、信息获取成果 2、关于超时的问题 四、总结 前言 这篇文章主要来源于一个我们家小朋友的一个作业…

计算机基础概论:构筑数字社会的硬件基础与交互技术

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f3af; 引言&#x1f4bb; 什么是计算机&#xff1f;&#x1f331; 计算机的起源与发展&#x1f6e0;️ 电脑硬件的五大核心组件1. 中央处理器 (CPU) - 智慧的心脏2. 随机存取内存 (RAM) - 快速的记忆体3. 存储设备 …

安卓手机听书的各种免费方案

categories: Tips tags: Tips 写在前面 最近 Tencent 突然给微信读书上限制了, 普通用户一个月内仅能导入 3 本书, 这就让经常在 weread 上面听书入眠的我很无奈了. 折腾一下备选方案吧, 肯定是免费优先咯. 下面主要从支持 tts 的阅读器/ tts 免费中文引擎两个角度来讲. r…

Linux驱动(3)- LInux USB驱动层次

在Linux系统中&#xff0c;提供了主机侧和设备侧USB驱动框架。 从主机侧&#xff0c;需要编写USB驱动包括主机控制器驱动&#xff0c;设备驱动两类&#xff0c;USB 主机控制驱动程序控制插入其中的USB设备。 USB设备驱动程序控制该设备如何作为从设备与主机进行通信。 1.主机…

Attention相关问题笔试解析。

Attention相关问题笔试解析。 题目描述一&#xff1a;【选择】题目描述二&#xff1a;【简答】题目描述三&#xff1a;【代码】Scaled Dot-Product Attention&#xff1a;下面是用PyTorch实现的一个Attention机制的代码。这个实现包括一个简单的Scaled Dot-Product Attention机…

XX数字中台技术栈及能力

XX数字中台技术栈及能力 1 概述 XX数字中台面向数据开发者、数据管理者和数据应用者&#xff0c;提供数据汇聚、融合、治理、开发、挖掘、共享、可视化、智能化等能力&#xff0c;实现数据端到端的全生命周期管理&#xff0c;以共筑数字基础底座&#xff0c;共享数据服务能力…

Java核心: 脚本引擎和动态编译

静态语言和动态语言的在相互吸收对方的优秀特性&#xff0c;取人之长补己之短。脚本引擎和动态编译就是其中一个关键特性&#xff0c;扩展了Java的能力边界。这一篇我们主要讲两个东西: ScriptEngine&#xff0c;执行脚本语言代码&#xff0c;如JavaScript、Groovy JavaCompile…

插入排序(概述)

描述 插入排序为将一个数插入到以排序好的数组中 目录 描述 原理 特性 代码 原理 我们以升序为例 先将新数插入到数组的最后一位&#xff0c;记录下新数的值 从新数的位置开始往前遍历&#xff0c;如果前一位大于新数的值 则将当前位置修改为前一位的值 如果前一位小…

爬虫案例:有道翻译python逆向

pip install pip install requestspip install base64pip install pycrytodome tools 浏览器的开发者工具&#xff0c;重点使用断点&#xff0c;和调用堆栈 工具网站&#xff1a;https://curlconverter.com/ 简便请求发送信息 flow 根据网站信息&#xff0c;preview,respon…

php之sql代码审计

1 SQL注入代码审计流程 1.1 反向查找流程 通过可控变量(输入点)回溯危险函数 查找危险函数确定可控变量 传递的过程中触发漏洞 1.2 反向查找流程特点 暴力&#xff1a;全局搜索危险函数 简单&#xff1a;无需过多理解目标网站功能与架构 快速&#xff1a;适用于自动化代码审…

RK3588 opencv maliGPU图像拼接

1 左边图 图像大小:1920*1080 2右边图 图像大小:1920*1080 3拼接好的图像 图像大小&#xff1a;1920 *1080 4代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp>//图像融合 #include <opencv2/xfeatures2d.…

基于SpringBoot和Mybatis实现的留言板案例

目录 一、需求及界面展示 二、准备工作 引入依赖 .yml文件相关配置 数据库数据准备 三、编写后端代码 需求分析 代码结构 Model Mapper Service Controller 前端代码 四、测试 一、需求及界面展示 需求&#xff1a; 1. 输入留言信息&#xff0c;点击提交&…

qt-C++笔记之使用QtConcurrent异步地执行槽函数中的内容,使其不阻塞主界面

qt-C笔记之使用QtConcurrent异步地执行槽函数中的内容&#xff0c;使其不阻塞主界面 code review! 文章目录 qt-C笔记之使用QtConcurrent异步地执行槽函数中的内容&#xff0c;使其不阻塞主界面1.QtConcurrent::run基本用法基本用法启动一个全局函数或静态成员函数使用 Lambda…

iOS--锁的学习

iOS--锁的学习 锁的介绍线程安全 锁的分类自旋锁和互斥锁OSSpinLockos_unfair_lockpthread_mutexpthread_mutex的属性 NSLockNSRecursiveLockNSConditionNSConditionLockdispatch_semaphoredispatch_queuesynchronizedatomicpthread_rwlock&#xff1a;读写锁dispatch_barrier_…

摸鱼大数据——Hive基础理论知识——Hive基础架构

1、Hive和MapReduce的关系 1- 用户在Hive上编写数据分析的SQL语句&#xff0c;然后再通过Hive将SQL语句翻译成MapReduce程序代码&#xff0c;最后提交到Yarn集群上进行运行 2- 大家可以将Hive理解成有道词典&#xff0c;帮助你翻译英文 2、Hive架构 用户接口: 包括 CLI、JDBC/…

Java+Swing+Mysql实现飞机订票系统

一、系统介绍 1.开发环境 操作系统&#xff1a;Win10 开发工具 &#xff1a;Eclipse2021 JDK版本&#xff1a;jdk1.8 数据库&#xff1a;Mysql8.0 2.技术选型 JavaSwingMysql 3.功能模块 4.数据库设计 1.用户表&#xff08;users&#xff09; 字段名称 类型 记录内容…

脑机接口习题

9-12章习题 填空题 EEG电极分为 主动电极 和 被动电极 &#xff0c;其中 被动电极 直接与放大器连接&#xff0c; 主动电极 包含一个1~10倍的前置放大。除抗混淆滤波器&#xff0c;放大系统也包含由电阻器、电容器构成的模拟滤波器&#xff0c;把信号频率内容限制在一个特定的…

B树与B+树区别

B树和B树是常见的数据库索引结构&#xff0c;都具有相较于二叉树层级较少&#xff0c;查找效率高的特点&#xff0c;它们之间有以下几个主要区别&#xff1a; 1.节点存储数据的方式不同 B树的叶子结点和非叶子节点都会存储数据&#xff0c;指针和数据共同保存在同一节点中B树…

当标签中出现输入了字母或者数字直接在一行上,没有换行的 情况时怎么办

当标签块中输入的是包含字母或者数字的时候&#xff0c;他不会换行&#xff0c;在一行上显示滚动条的形式&#xff0c;而我们想让他走正常文档流&#xff0c;该换行的时候换行 想要的如下效果 给相应的元素块添加该代码即可 word-break: break-all; .card-content { …