C语言:打印菱形(输入菱形上半部分行数)

题目:

用C语言在屏幕上输入以下图案:

                    

 =========================================================================

                       

思路:

总体思路:

(一).

输入菱形上半部分行数 -- scanf()函数

         

(二).

使用 for循环 进行 菱形上半部分三角形 打印

菱形上半部分三角形行数 -- i < line

(注:只是菱形上半部分三角形的行数,上半部分是 正三角

       

使用 内嵌for循环 进行循环打印出上半部分菱形的 空格

上半部分菱形 空格 规律

j < line - 1 - i

line等于7,那么,

第一行 就打印 7-1-0=6 空格

第二行 就打印 7-1-1=5空格

           

内嵌第二个for循环打印上半部分菱形的 * 号

上半部分菱形 * 号 规律

j < 2 * i + 1

line等于7,那么,

第一行 就打印 2*0+1=1*号

第二行 就打印 2*1+1=3*号

                

打印完一行后就进行换行

printf("\n");

            

(三).

使用 for循环 进行 菱形下半部分三角形打印

菱形下半部分三角形行数 -- i < line-1

(注:是菱形下半部分三角形的行数,下半部分是 倒三角

              

使用 内嵌for循环 进行循环打印出下半部分菱形的 空格

下半部分菱形 空格 规律

j <= i

line-1 为 7-1=6 ,那么,

第一行 就打印

j=0,i=0,j<=i 

1个 空格

第二行 就打印

j=0,i=1,j<=i,

2个 空格

           

内嵌第二个for循环打印下半部分菱形的 * 号

下半部分菱形 * 号 规律

j < 2*(line-1-i)-1

line-1 为 7-1=6 ,那么,

第一行 就打印 2*(7-1-0)-1=11 个 *号

第二行 就打印 2*(7-1-1)-1=9 个 *号

                

打印完一行后就进行换行

printf("\n");

                 


                 

第一步:

输入菱形上半部分行数 -- scanf()函数

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);


	return 0;
}

实现图片:

                 


                 

第二步:

(1).

使用 for循环 进行 菱形上半部分三角形 打印

菱形上半部分三角形行数 -- i < line

(注:只是菱形上半部分三角形的行数,上半部分是 正三角

       

(2).

使用 内嵌for循环 进行循环打印出上半部分菱形的 空格

上半部分菱形 空格 规律

j < line - 1 - i

line等于7,那么,

第一行 就打印 7-1-0=6 空格

第二行 就打印 7-1-1=5空格

           

(3).

内嵌第二个for循环打印上半部分菱形的 * 号

上半部分菱形 * 号 规律

j < 2 * i + 1

line等于7,那么,

第一行 就打印 2*0+1=1*号

第二行 就打印 2*1+1=3*号

                

(4).

打印完一行后就进行换行

printf("\n");

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现图片:

                 


                 

第三步:

(1).

使用 for循环 进行 菱形下半部分三角形打印

菱形下半部分三角形行数 -- i < line-1

(注:是菱形下半部分三角形的行数,下半部分是 倒三角

              

(2).

使用 内嵌for循环 进行循环打印出下半部分菱形的 空格

下半部分菱形 空格 规律

j <= i

line-1 为 7-1=6 ,那么,

第一行 就打印

j=0,i=0,j<=i 

1个 空格

第二行 就打印

j=0,i=1,j<=i,

2个 空格

           

(3).

内嵌第二个for循环打印下半部分菱形的 * 号

下半部分菱形 * 号 规律

j < 2*(line-1-i)-1

line-1 为 7-1=6 ,那么,

第一行 就打印 2*(7-1-0)-1=11 个 *号

第二行 就打印 2*(7-1-1)-1=9 个 *号

                

(4).

打印完一行后就进行换行

printf("\n");

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	//菱形下半部分的打印:行数 -- line-1
	for (i = 0; i < line-1; i++)
	{
		//打印一行,先打印空格,再打印*号
		
		//内嵌for循环 打印空格:
		//下半部分空格规律:
		//			j<=i:假设行数是7-1=6,
		//第一行打印j=0,i=0,j<=i,1个空格;第二行打印j=0,i=1,j<=i,2个空格……
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//下半部分*号规律:
		//		2*(line-1-i)-1:假设行数是7-1=6,
		//第一行打印2*(7-1-0)-1,11个*号;第二行打印2*(7-1-1)-1,9个*号……
		for (j = 0; j < 2*(line-1-i)-1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	//菱形下半部分的打印:行数 -- line-1
	for (i = 0; i < line-1; i++)
	{
		//打印一行,先打印空格,再打印*号
		
		//内嵌for循环 打印空格:
		//下半部分空格规律:
		//			j<=i:假设行数是7-1=6,
		//第一行打印j=0,i=0,j<=i,1个空格;第二行打印j=0,i=1,j<=i,2个空格……
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//下半部分*号规律:
		//		2*(line-1-i)-1:假设行数是7-1=6,
		//第一行打印2*(7-1-0)-1,11个*号;第二行打印2*(7-1-1)-1,9个*号……
		for (j = 0; j < 2*(line-1-i)-1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现效果:

猜你喜欢

转载自blog.csdn.net/weixin_63176266/article/details/131367739