这个作为新手入门的经典题,大部分同学都是采用两个循环实现的,这不免显得冗余,本文对经典代码进行改进:

~紧紧结合函数的对称性

#include<stdio.h>
int main()
{
	int n ,i, j;
	scanf("%d", &n);
	for (int i = -n + 1; i < n;i++)
	{
		int t;
		t = i > 0 ? i : -i;//取绝对值
		for (int j = 0; j < t;j++)
			printf(" ");
		for (int j = 0; j < 2*(n - t)-1;j++)
			printf("*");
		printf("\n");
	}
	return 0;
}

代码实现图 


更多推荐

C语言—输出菱形(一次循环嵌套实现)