牛客题解-------BC99:正方形图案

发布于:2023-01-04 ⋅ 阅读:(352) ⋅ 点赞:(0)

目录

一、题目相关

二、题目链接

三、题目

题目描述:

输入   

输出

样例

 四、题目分析

五、AC参考代码

六、共勉


一、题目相关

       在对于初学C语言的我来说,对于图形打印一直都有一种未知的恐惧,大家是否跟我一样在开始对于图形的打印只是一味的运用printf()傻傻的将其打印出来,而非去考虑是否可以运用循环和其它的手段解决问题。其实只有我们经过思考,运用循环去解决图形打印,就可以达到做一道题,会一类题的效果,这次我会带大家,详细的介绍我是如何去理解图形打印这一类题,首先拿一道简单的题来举个例子吧!

二、题目链接

牛客OJ :https://www.nowcoder.com/practice/1304bb23c2e344989d5c7a578d263e4c?tpId=290&tqId=309106&ru=/exam/oj&qru=/ta/beginner-programmers/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E8%25AF%25AD%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D290

三、题目

题目描述:

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

输入   

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

输出

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

样例

输入 :4

输出 :*    *    *    *

            *    *    *    *

            *    *    *    *

            *    *    *    * 

输入:5

输出:*    *    *    *    *

           *    *    *    *    *

           *    *    *    *    *

           *    *    *    *    *

           *    *    *    *    *

 四、题目分析

首先第一个我给大家重新画一个更加形象的图来观察一下

 我拿第一个样例给大家讲解,通过上图我们可以发现,想要用循环打印出此图,我们可以从,行数和列数来进行分析,可以用一个循环来控制行数,一个循环来控制列数。

(1)第一个循环用来控制行数

for (int i = 1; i <= 4; i++) // 用来控制行数,此时有4行,就循环4次

(2)第二个循环需要嵌套在第一个循环里来控制列数,例如:当 i=1是表示进入第一行,之后开始第二个循环表示:第一行的4列是如何表达的。随后第二行、第三行、第四行同理

for (int i = 1; i <= 4; i++)   //控制行数
	{
		for (int j = 1; j <= 4; j++)  //控制列数
		{
				
		}
    }

(3)按照题意,在第二个循环中加入” *  “,例如:当 i=1时,循环 j=1~4 表示:第一行的1到4列每一列打印一个” *  “ 就会出现"  *  *  *  * "的图案在第一列,其他行同理。

for (int i = 1; i <= 4; i++) //控制行数
	{	
       for (int j = 1; j <= 4; j++) //控制列数
		{
			printf("* ");   //  在第 i 行的第 j 列中打印一个"*  "
		}
			printf("\n");   //  每一行打印完成后需要换行
	}

五、AC参考代码

#include <stdio.h>
int main()
{
	int x;
	while (scanf("%d", &x)!=EOF)    //连续输入
	{
		for (int i = 1; i <= x; i++)   //控制行数
		{
			for (int j = 1; j <= x; j++)  //控制列数
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	return 0;
}

六、共勉

如果大家看到我的打印图形详解,有什么不足或者不懂的地方,我们可以在评论区讨论,后期我会不断的更新更加进阶的图形打印,请大家持续关注我哦!


网站公告

今日签到

点亮在社区的每一天
去签到