每天都要刷题系列之循环1

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

5

复制输出:

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

解题思路

作为一道非常简单的循环图形题,这个题目要注意到图形中空白的部分,C语言中的空白是‘ ’字符,所以把这个图形看成两个部分左边打印空格符组成的倒三角,右边打印*字符组成的正三角

int main()
{
	int num = 0;
	int row = 0;
	int col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num; row++)//循环5行
		{
			for (col = 0; col < num - 1 - row; col++)//打印倒三角
			{
				printf("  ");
			}
			for (col = 0; col <= row; col++)//打印正三角
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

结果

 

描述

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

输入描述:

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

输出描述:

针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。

示例1

输入:

5

复制输出:

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

解题思路

这一题和上一题没什么不同,只不过打印了空格符的正三角,和*字符的倒三角

#include<stdio.h>

int main()
{
	int num = 0;
	int row = 0;
	int col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num; row++)
		{
			for (col = 0; col < row; col++)
			{
				printf(" ");
			}
			for (col = 0; col <num - row; col++)
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

 

描述

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

输入描述:

多组输入,一个整数(2~20)。

输出描述:

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

示例1

输入:

2

复制输出:

  * 
 * * 
* * * 
 * * 
  * 

 解题思路

这道题是三角形的变种,把菱形看作上下两个部分,上半部分打印3行的正三角,下半部分打印2行的倒三角

int main()
{
	int num = 0, row = 0, col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num + 1; row++)//打印上半部
		{
			for (col = 0; col < num - row; col++)
			{
				printf(" ");
			}
			for (col = 0; col <= row; col++)
			{
				printf("* ");
			}
			printf("\n");
		}
		for (row = 0; row < num; row++)//打印下半部分
		{
			for (col = 0; col <= row; col++)
			{
				printf(" ");
			}
			for (col = 0; col < num - row; col++)
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

 

 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

描述

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

输入描述:

多组输入,一个整数(2~20)。

输出描述:

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

示例1

输入:

2

复制输出:

* * * 
* * 
* 
* * 
* * * 

解题思路

又是一个三角型变种提,还是分为上下部分打印就行

 

int main()
{
	int num = 0;
	int row = 0;
	int col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num + 1; row++)
		{
			for (col = 0; col < num + 1 - row; col++)
			{
				printf("* ");
			}
			printf("\n");
		}
		for (row = 0; row < num; row++)
		{
			for (col = 0; col <= 1 + row; col++)
			{
				printf("* ");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

 

描述

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

输入描述:

本题多组输入,每行一个整数(2~20)。

输出描述:

针对每行输入,输出用“*”组成的箭形。

示例1

输入:

2

复制输出:

    *
  **
***
  **
    *

解题思路

同上

int main()
{
	int num = 0;
	int row = 0;
	int col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num + 1; row++)
		{
			for (col = 0; col < num - row; col++)
			{
				printf("  ");
			}
			for (col = 0; col <= row ; col++)
			{
				printf("*");
			}
			printf("\n");
		}
		for (row = 0; row < num; row++)
		{
			for (col = 0; col <= row; col++)
			{
				printf("  ");
			}
			for (col = 0; col < num - row; col++)
			{
				printf("*");
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

 

描述

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

输入描述:

多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

输出描述:

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

示例1

输入:

4

复制输出:

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

解题思路

看成打印一个n*n的正方形,当行和列不再边上的时候,打印空字符,其余时候打印*字符就好

int main()
{
	int num = 0;
	int row = 0;
	int col = 0;
	while (scanf("%d", &num) != EOF)
	{
		for (row = 0; row < num; row++)
		{
			for (col = 0; col < num; col++)
			{
				if ((row != num - 1 && row != num - num)&&(col != num - 1 && col != num - num))
				{
					printf("  ");
				}
				else
				{
					printf("* ");
				}
			}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值