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

牛客网刷题 | 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.lryc.cn/news/353615.html

相关文章:

  • 启动小程序F12窗口管理器
  • 完全背包之零钱兑换I
  • Flutter 中的 FittedBox 小部件:全面指南
  • Java的线程的使用
  • 行为型模式 (Python版)
  • vscode:如何解决”检测到include错误,请更新includePath“
  • 区块链会议投稿资讯CCF A--USENIX Security 2025 截止9.4、1.22 附录用率
  • vue实现可拖拽移动悬浮球
  • 立体库堆垛机的精密构造与功能(收藏版)
  • 算法提高之你能回答这些问题吗
  • C++-指针
  • Three.js 研究:2、如何让动画线性运动
  • z3-加法器实验
  • 解决git克隆项目出现fatal无法访问git clone https://github.com/lvgl/lvgl.git
  • Vue中引入组件需要哪三步
  • 到底该用英文括号还是中文括号?
  • 一个普通双非女生的秋招之路
  • 一个模型用了几层神经网络怎么算?
  • python获取cookie的方式
  • Nginx-狂神说
  • Python筑基之旅-运算符
  • 【Text2SQL】Spider 数据集
  • 语雀——云知识库/笔记
  • Java学习:电影查询简单系统
  • 在Mac电脑下怎么部署QAnything?
  • 单条16g和双条8g哪个好
  • Microsoft VBA Excel 去重小工具
  • 数据库管理-第194期 网络加速RDMA初探(20240526)
  • C++小游戏 合集
  • 【Python爬虫篇】Selenium在获取网页数据方面的使用及采集中国大学课程评论数据