牛客题解----------BC101 翻转直角三角形图案

目录

一、题目相关

二、题目链接

三、题目

题目描述:

输入:

输出:

样例:

四、题目分析

五、AC代码

 六、共勉


一、题目相关

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

二、题目链接

    翻转直角三角形图案_牛客题霸_牛客网

三、题目

题目描述:

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

输入:

多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“*”的数量,也表示输出行数。

输出:

针对每行输入,输出用“*”组成的对应长度的翻转直角三角形,每个“*”后面有一个空格。

样例:

 输入:5

 输出:

       *  *  *  *  *  

       *  *  *  *  

       *  *  *   
  
       *  *   
 
       * 
   
输入:6

输出:

     *  *  *  *  *  *
 
     *  *  *  *  *

     *  *  *  *
  
     *  *  *
     
     *  *
   
     *

四、题目分析

     首先给大家重新画一个更加形象的图,便于大家的理解!!!!

     通过上图我们可以发现,想要循环打印出此图,我们可以从,行数和列数来进行分析,可以用一个循环来控制行数,一个循环来控制列数。

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

for (int i = 1; i <= 5; i++) //用来控制行数

    (2)注意:第二个循环需要嵌套在第一个循环里来控制列数,例如:当 i=1 是表示进入第一个行,之后的第二个循环表示:第一行的四列是如何表达的随后第二行、第三行、第四行同理。最后再根据下图找出列数的规律。

    用代码表示为: 

for (int i = 1; i <= x; i++) //用来控制行数
		{
			for (int j = 1; j <= (x - i + 1);j++)  //用来控制列数
			{
				
			}
		}

(3)最后按照题意,在第二个循环后加入:“* ”

for (int i = 1; i <= x; i++) //用来控制行数
	{
		for (int j = 1; j <= (x - i + 1);j++) //控制列数
		{
			printf("* ");   //每行打印特定的*
		}
			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 - i + 1);j++)  //控制列数
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	return 0;
}

    AC的样例图

 六、共勉

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

2.如果想要更多的打印图案讲解,请进入这个专项训练哦:(161条消息) 图形打印专项训练_sunny-ll的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_45031801/article/details/126917637
今日推荐