打印各种图案~

Posted 一朵花花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印各种图案~相关的知识,希望对你有一定的参考价值。

题目

1.线段图案

输入描述:
多组输入,一个整数(1~100),表示线段长度,即“ * ”的数量
输出描述:
针对每行输入,输出占一行,用" * "组成的对应长度的线段

输入示例:

10
2

输出示例:

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

代码实现

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

2.正方形图案

输入描述:
多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。
输出描述:
针对每行输入,输出用“*”组成的对应边长的正方形,每个“ * ”后面有一个空格。

输入示例:

4

输出示例

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

代码实现

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

前两个图案比较简单,这里就不多提了~

3.直角三角形图案

输入描述:
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“ * ”组成的对应长度的直角三角形,每个“ * ”后面有一个空格。

输入示例:

4

输出示例:

*
* *
* * *
* * * *

代码实现

int main() 
	int row = 0;
	while (scanf("%d", &row) != EOF) 
		for (int i = 0; i < row; i++) 
			for (int k = 0; k <= i; k++) 
				printf("* ");
			
			printf("\\n");
		
	
	system("pause");
	return 0;

第一个for循环控制循环行数,第二个for循环控制每行输出多少个"*"

4.翻转直角三角形图案

输入描述:
多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“ * ”组成的对应长度的翻转直角三角形,每个“ * ”后面有一个空格。

输入示例:

5

输出示例:

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

代码实现

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

在上一题的基础上,改变第二个for循环的条件即可~

5.带空格直角三角形图案

输入描述:
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“ * ”组成的对应长度的直角三角形,每个“ * ”后面有一个空格.

输入示例:

5

输出示例:

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

代码实现

int main() 
	int row = 0;
	int i = 0;
	int k = 0;
	while (scanf("%d", &row) != EOF) 
		for (i = 0; i < row; i++) 
			for (k = row; k > i; k--) 
				printf("  ");//此处为两个空格,因为"* " 的*后边有一个空格
			
			for (k = 0; k <= i; k++) 
				printf("* ");
			
			printf("\\n");
		
	
	system("pause");
	return 0;


循环打印空格时,可以套用打印翻转直角三角形的循环代码,再写一个for循环来控制每行输出的" * "个数,放在第一个循环里即可~

6.金字塔图案

输入描述:
多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“ * ”组成的金字塔,每个“ * ”后面有一个空格。

输入示例:

4

输出示例:

   * 
  * * 
 * * * 
* * * * 

代码实现

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

在上一题的基础上,双for循环输出空格时,少打印一个空格即可~

7.翻转金字塔图案

输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“ * ”组成的金字塔,每个“ * ”后面有一个空格。

输入示例:

5

输出示例:

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

代码实现

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


套用打印直角三角形的代码来循环打印空格,再用for循环控制打印每一行的" * "的个数即可~

8.菱形图案

输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“ * ”组成的菱形,每个“*”后面有一个空格。

输入示例:

2
3

输出示例:

  * 
 * * 
* * * 
 * * 
  * 

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

代码实现

int main() 
	int num = 0; //num为上三角和下三角的行数
	int i = 0;
	int k = 0;
	while (scanf("%d", &num) != EOF) 
		//打印上三角
		for (i = 0; i < num; i++) 
			for (k = num; k > i; k--) 
				printf(" ");
			
			for (k = 0; k <= i; k++) 
				printf("* ");
			
			printf("\\n");
		
		//打印中间那条线
		for (i = 0; i < num + 1; i++) 
			printf("* ");
		
		printf("\\n");
		//打印下三角
		for (i = 0; i < num; i++) 
			for (k = 0; k <= i; k++) 
				printf(" ");
			
			for (k = 0; k < num - i; k++) 
				printf("* ");
			
			printf("\\n");
		
	
	system("pause");
	return 0;

9.K形图案

输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“ * ”组成的K形,每个“*”后面有一个空格。

输入示例:

2
3

输出示例:

* * * 
* *  
*   
* *  
* * *

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

代码实现

int main() 
	int num = 0;//从中间分割,上、下的行数
	int i = 0;
	int k = 0;
	while (scanf("%d", &num) != EOF) 
		//上部分
		for (i = 0; i < num; i++) 
			for (k = num+1; k > i; k--) 
				printf("* ");
			
			printf("\\n");
		
		//下部分
		for (i = 0; i < num+1; i++) 
			for (k = 0; k <= i; k++) 
				printf("* ");
			
			printf("\\n");
		
	
	system("pause");
	return 0;

10.箭形图案

输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“*”组成的箭形。

输入示例:

2

输出示例:

    *
  **
***
  **
    *

代码实现

int main() 
	int num = 0;//不算中间那行的,上、下行数
	int i = 0;
	int k = 0;
	while (scanf("%d", &num) != EOF) 
		//上部分
		for (i = 0; i < num+1; i++) 
			for (k = num; k > i; k--) 
				printf("  ");
			
			for (k = 0; k <= i; k++) 
				printf("*");
			
			printf("\\n");
		
		//下部分
		for (i = 0; i < num; i++) 
			for (k = 0; k <= i; k++) 
				printf("  ");
			
			for (k = 0; k < num - i; k++) 
				printf("*");
			
			printf("\\n");
		
	
	system("pause");
	return 0;

11.反斜线图案

输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“*”的数量。
输出描述:
针对每行输入,输出用“ * ”组成的反斜线。

输入示例:

4

输出示例:

*   
 *  
  * 
   *

代码实现

int main() 
	int row = 0;//row既是行数,也是*的个数
	int i = 0;
	int k = 0;
	while (scanf("%d", &row) != EOF) 
		for (i = 0; i < row; i++) 
			for (k = 0; k < row; k++) 
				if (i == k) 
					printf("*");
				
				else 
					printf(" ");
				
			
			printf("\\n");
		
	
	system("pause");
	return 0;

12.正斜线图案

输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。
输出描述:
针对每行输入,输出用“ * ”组成的正斜线。

输入示例:

4

输出示例:

   *
  * 
 *  
* 

代码实现

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

13.X形图案

输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“*”组成的X形图案。

输入示例:

5
6

输出示例:

*   *
 * * 
  *  
 * * 
*   *

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

代码实现

int main() 
	int row = 0;
	int i = 0;
	int k = 0;
	while (scanf("%d", &row) != EOF) 
		for (i = 0; i < row; i++) 
			for (k = 0; k < row; k++) 
				//打印左斜线
				if (i == k) 
					printf("*");
				

以上是关于打印各种图案~的主要内容,如果未能解决你的问题,请参考以下文章

前端 实现 直角三角形 边长角度计算工具

前端 实现 直角三角形 边长角度计算工具

前端 实现 直角三角形 边长角度计算工具

Python 打印各种三角形

C语言 用直角边长 计算角度

打印三角形