C语言循环输出图形(二)

1. 菱形图案

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

2

输出:

  * 
 * * 
* * * 
 * * 
  * 
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		//打印n+1行
		 //3
		int i = 0;
		int j = 0;
		int m = n;
		int k = 0;
		for (i = 0; i <= n; i++)
		{
			for (j = 1; j <= m; j++)
			{
				printf(" ");
			}
			for (k = 0; k <= i; k++)
			{
				printf("%c ", '*');
			}
			printf("\n");
			m--;
		}
		//打印n行
		m = n;
		for (i = 0; i < n; i++)
		{
			//p/*rintf(" ");*/
			for(j=0;j<=i;j++)
			{
				printf(" ");
			}
			for (k = 0; k < m; k++)
			{
				printf("%c ", '*');
			}
			printf("\n");
			m--;
		}
	}
	return 0;
}

 2. K形图案

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

2

输出:

* * * 
* * 
* 
* * 
* * * 
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		int i = 0;
		int j = 0;
		int m = n;
		//打印n+1行
		//2
		for (i = 0; i <= n; i++)
		{
			for (j = 0; j <= m; j++)
			{
				printf("%c ", '*');
			}
			m--;
			printf("\n");
		}
		//打印n行
		m = n;
		for (i = 1; i <= n; i++)
		{
			for (j = 0; j <= i; j++)
			{
				printf("%c ", '*');
			}
			printf("\n");
		}
	}
	return 0;

3.箭形图案 

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

2

输出:

    *
  **
***
  **
    *
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		//n=2
		//空格数量
		int s = n * 2;
		int i = 0;
		int j = 0;
		int k = 0;
		//打印n+1行
		for (i = 0; i <= n; i++)
		{
			for (j = 0; j < s; j++)
			{
				printf(" ");
			}
			for (k = 0; k <= i; k++)
			{
				printf("%c", '*');
			}
			printf("\n");
			//每次空格减二
			s-=2;
		}
		//打印n行
		// 上一次s遗留下来的值为-2;
		//这里加4主要是为了让空格能再打印2次,只要能满足循环2次的条件就行;(也可加三)
		s += 4;
		for (i = 1; i <= n; i ++ )
		{
			for (j = 1; j <= s; j++)
			{
				printf(" ");
			}
			for (k = n; k >=i ; k--)
			{
				printf("%c", '*');
			}
			printf("\n");
			s += 2;
		}


	}
	return 0;
}

4.反斜线形图案

输入描述:

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

输出描述:

针对每行输入,输出用“*”组成的反斜线。

示例1

输入:

4

复制输出:

*   
 *  
  * 
   *
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		//定义行
		int i = 0;
		int j = 0;
		int m = 0;
		for (i = 0; i < n; i++)
		{
			//打印空格;
			for (j = 0; j <i; j++)
			{
				printf(" ");
			}
			printf("%c", '*');
			printf("\n");
			m++;

		}
	}
	return 0;
}

5.正斜线形图案

描述

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

输入描述:

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

输出描述:

针对每行输入,输出用“*”组成的正斜线。

示例1

输入:

4

复制输出:

   *
  * 
 *  
*   
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		//定义行
		int i = 0;
		int j = 0;
		for (i = n; i > 0; i--)
		{
			//打印空格
			for (j = 0; j < i - 1; j++)
			{
				printf(" ");
			}
			printf("%c", '*');
			printf("\n");
		}
	}
	return 0;
}

6.X形图案

描述

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

输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

输出描述:

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

示例1

输入:

5

复制输出:

*   *
 * * 
  *  
 * * 
*   *
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		int i = 0;
		int j = 0;
		for (i = 0; i < n; i++)
		{
			for (j = 0; j < n; j++)
			{
				if (i == j || i + j == n - 1)
				{
					printf("%c", '*');
				}
				else
					printf(" ");
			}
			printf("\n");
		}
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值