输出菱形图案

文章讲述了在C语言中打印星号图案时遇到的四个问题,包括上半部分空格缺失、星号数量计算错误、下半部分空格逻辑不正确以及下半部分星号输出未考虑变量i的情况。提供了print_down和print_up两个函数的代码,并通过用户输入的奇数行数来展示图形。
摘要由CSDN通过智能技术生成

参考图案:

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

问题:

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值