C语言第二十五弹--打印菱形

C语言打印菱形

C语言第二十五弹--打印菱形_第1张图片

思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2×对应行数 + 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。

上半部分代码如下

	for (int i = 0;i < line;i++)
	{
		//上半部分
		int j = 0;
		for (j = 0; j < line - i - 1; j++)//空格
		{
			printf(" ");
		}

		for (j = 0; j < 2 * i + 1; j++)//*
		{
			printf("*");
		}
		printf("\n");
	}

思路:观察下半部分可以看出,空格和对应行数相同,*号是7 5 3 1 满足2×(行数 - 对于行数值- 1) -1。

代码如下

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

		for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//*
		{
			printf("*");
		}

		printf("\n");
	}

总代码

#define _CRT_SECURE_NO_WARNINGS
#include nt main()
{
	int line = 0;
	scanf("%d",&line);
	for (int i = 0;i < line;i++)
	{
		//上半部分
		int j = 0;
		for (j = 0; j < line - i - 1; j++)//空格
		{
			printf(" ");
		}

		for (j = 0; j < 2 * i + 1; j++)//*
		{
			printf("*");
		}
		printf("\n");
	}

	//下半部分
	for (int i = 0; i < line - 1; i++)
	{
		int j = 0;
		for (j = 0; j <= i;j++)//空格
		{
			printf(" ");
		}

		for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//*
		{
			printf("*");
		}

		printf("\n");
	}
	return 0;
}

你可能感兴趣的:(c语言,开发语言)