详细讲解:打印菱形(随心所欲版)

  • Post author:
  • Post category:其他


C语言打印

菱形

–超详细讲解




前言

在学习C语言的时候,会遇到打印菱形的题目。在开始时我也只是用printf函数直接打印,那样也可以,但是灵活性以及简便性比较低,所以接下来请你跟我一起来看一下,比较灵活的版本。(思维性只有一点点(*^▽^*)不要担心)




一、

打印菱形的基本思路

在图中,我们可以清晰地观察出‘*’排列成四阶菱形(方便理解,后面咱们可以自己随意搞几阶)

我们只需要注意


空格





星号


的合理排列就可以构成我们想要的菱形。

我们可以用变量


i


来表示我们的行数,用变量


j


来表示我们行中的元素个数(*的数量)

在表示的过程中我们会发现其实一个菱形的上边部分和下半部分表示会略有区别(后面细说)

(如果只是参考一下代码,请直接翻到最后,可直接copy O(∩_∩)O哈哈~)



二、操作步骤



1.

确定行数和每行中的元素个数

int line = 0;//自己想要的几阶菱形
scanf("%d", &line);
int i = 0;//内部的层数
int j = 0;//内部层数的元素个数

2.打印空格和*(星号)
【上一半菱形
for (i = 0; i < line; i++)
	{
	//打印空格
	for (j = 0; j < line - 1 - i; j++)
		{
		printf(" ");
		}
		//打印*
	for (j = 0;j<2*i+1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
【下一半菱形】
	//下面

	for (i = 0; i < line-1; i++)
	{
		//打印空格
		for (j = 0; j < i+1; j++)
		{
			printf(" ");
		}

		//打印*
		for (j = 0; j < (line-1-i)*2-1; j++)
		{
			printf("*");
		}
		putchar('\n');




总结

所以可以将上半部分和下半部分合在一起,成为以下代码:

/*--打印菱形--*/
#include<stdio.h>
	
int main(void)
{
	int i = 0;
	int line = 0;
	scanf("%d", &line);
	int j = 0;
	//上面
	for (i = 0; i < line; i++)
	{
		//打印空格
		
		for (j = 0; j < line - 1 - i; j++)
		{
			printf(" ");
		}
		//打印*
		for (j = 0;j<2*i+1; j++)
		{
			printf("*");
		}
		printf("\n");
	}

	//下面

	for (i = 0; i < line-1; i++)
	{
		//打印空格
		
		for (j = 0; j < i+1; j++)
		{
			printf(" ");
		}

		//打印*
		for (j = 0; j < (line-1-i)*2-1; j++)
		{
			printf("*");
		}
		putchar('\n');
	}
	return 0;
}

多多理解,O(∩_∩)O哈哈~



版权声明:本文为2203_75523573原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。