输出菱形图案

参考图案:

      *
     ***
    *****
   *******
  *********
 ***********
*************   
 ***********
  *********
   *******
    *****
     ***
      *

问题:

1.输出上半部分的空格时没有-i

2.输出上半部分的*时写成2*line_half-1,导致形状很奇怪

3.输出下半部分的空格时一开始没有捋清楚j<=i

4.输出下半部分的*时没有考虑变量i,导致形状呈现平行四边形

void print_down(int line_half)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < line_half - 1; i++)
	{
		//打印空格
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		//打印 *
		for (j = 0; j < 2 * (line_half -1 - i) - 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
}
void print_up(int line_half)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < line_half; i++)
	{
		//打印空格
		for (j = 0; j < line_half - 1 - i; j++)
		{
			printf(" ");
		}
		//打印 *
		for (j = 0; j < 2 * i + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
}
int main()
{
	int line_half = 0;
	printf("输入上半部分的行数(奇数):");
	scanf("%d", &line_half);
	print_up(line_half);
	print_down(line_half);
	return 0;
}

你可能感兴趣的:(算法)