打印菱形-c语言

分析:打印菱形,可以分上下两个部分来打印,因为上下两个部分是不一样的。

 以打印7行的菱形为例:

上半部分:总共7行,一行一行的打印,先打印空格(空格控制缩进),再打印*。

                  打印空格:第一行打印6个空格,第二行打印5个空格,第三行打印4个空格,第四行打印3个空格,第五行打印2个空格,第六行打印1个空格,第七行打印0个空格。行与空格的关系:一共7行,每一行的空格=7-1-第几行。第一行打印的空格数:6=7-1-0;第二行打印的空格数:5=7-1-1;第三行打印的空格数:4=7-1-2;第四行打印的空格数:3=7-1-3;第五行打印的空格数:2=7-1-4;第六行打印的空格数:1=7-1-5;第七行打印的空格数:0=7-1-6;

                 打印*:第一行打印1颗星,第二行打印3颗星,第三行打印5颗星,第四行打印7颗星,第五行打印9颗星,第六行打印11颗星,第七行打印13颗星。行与*的关系:第一行打印的星的数:1=2*0+1;第二行打印的星的数:3=2*1+1;第三行打印的星的数:5=2*2+1;第四行打印的星的数:7=2*3+1;第五行打印的星的数:9=2*4+1;第六行打印的星的数:11=2*5+1;第七行打印的星的数:13=2*6+1;

下半部分:总共6行,一行一行的打印,先打印空格(空格控制缩进),再打印*。

                 打印空格:第一行打印1个空格,第二行打印2个空格,第三行打印3个空格,第四行打印4个空格,第五行打印5个空格,第六行打印6个空格。行与空格的关系:一共6行,每一行的空格=第几行。第一行的空格数:1=1;第二行的空格数:2=2;第三行的空格数:3=3;第四行的空格数:4=4;第五行的空格数:5=5;第六行的空格数:6=6;

                打印*:第一行打印11颗星,第二行打印9颗星,第三行打印7颗星,第四行打印5颗星,第五行打印3颗星,第六行打印1颗星。行与*的关系:第一行打印的星的数:11=2*(6-0)-1;第二行打印的星的数:9=2*(6-1)-1;第三行打印的星的数:7=2*(6-2)-1;第四行打印的星的数:5=2*(6-3)-1;第五行打印的星的数:3=2*(6-4)-1;第六行打印的星的数:1=2*(6-5)-1;

#include <stdio.h>
int main() {
	
	int line = 0;
	scanf("%d",&line);
	//上
	int i = 0;
	for (i = 0;i < line;i++) {
		//打印一行
		//打印空格
		int j = 0;
		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++) {
		//打印一行
		//打印空格
		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;
}

猜你喜欢

转载自blog.csdn.net/Jushuzhan/article/details/125841206
今日推荐