C语言之打印菱形

        小编最近在刷题的时候遇到很多使用循环的题目,对于这类题目,小编思维逻辑有时候也会很迷,现在来分享一下经典的案列,帮助大家锻炼一下逻辑 

   打印如图所示的菱形

C语言之打印菱形_第1张图片

 

 

 

 通过研究分析,菱形可以分为上三角部分和下三角部分

那我们就通过分部打印实现

 首先判断所要打印菱形每行的空格数和*数

在上三角中,行数定义为high,空格数通过看图可以发现随high减少,空格数(6,5,4...0)

*数满足行数乘以二减去一

for (i = 1; i <= high; i++) {//上三角
		int j;
		for (j = 1; j <=high-i ; j++) {
			printf(" ");
		}
		for (j = 1; j <=2*i-1;j++) {
			printf("*");
		}
		printf("\n");
	
	}

 下三角中空格数(1...6),*数(11....1)通过查找规律*数满足2(high-i)-1

for (i = 1; i 0; j--) {
			printf("*");
		}
		printf("\n");

 


最后合成一串完整的代码

#include

int main() {
	int high = 0;
	scanf("%d",&high);
	int i;
	for (i = 1; i <= high; i++) {//上三角
		int j;
		for (j = 1; j <=high-i ; j++) {
			printf(" ");
		}
		for (j = 1; j <=2*i-1;j++) {
			printf("*");
		}
		printf("\n");
	
	}

	for (i = 1; i 0; j--) {
			printf("*");
		}
		printf("\n");

	}

}

注意!我所定义的i为1,j也可以为其他值,编写代码的时候可以灵活使用,理清此题目思路就可以。

你可能感兴趣的:(c语言,算法,c++)