C语言1.打印各种三角形

拿纸数、画,别空想

1.上三角

请添加图片描述
总之:把打印几个星,空个格,分开考虑

首先,两层循环,一层做换行,一层做行内打印
打印空格和分两次做,用内部两个循环
三角形先输出空格" ",后输出
,发现规律,先打印n-i-1个空格,再打印* 每行2(i-1)+1

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


	return 0;
}

2. 下三角

请添加图片描述

总之:把打印几个星,空个格,分开考虑

同上两层
*数:2(n-i+1)
空格数:每行空 i-1个空格

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

3. 菱形(拼起来)

思路:N/2 分上下两半做,然后不断调试
开始,我发现,奇数差多了,偶数只是格式不对
后来我想,让偶数也多打一行,结果,奇数偶数会
我让奇数-1成为偶数,然后让下三角部分的从2开始打印,就省去重复的一行

// 菱形 : 奇数多了一层、偶数格式不对

int main()
{
	int n = 0;
	scanf("%d", &n);
	if(n%2!=0)
	{	n -= 1;	}
	int a = n / 2;
	int b = n - a;
	for (int i = 1; i <= a; i++)
	{
		// 空格
		for (int j = 1; j <= a - i; j++)
		{
			printf(" ");
		}
		// *
		for (int j = 1; j <= 2 * (i - 1) + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}

	// 我让奇数-1,然后让下面从2开始打印
	for (int i = 2; i <= b; i++)
	{
		// 空格
		for (int j = 1; j <= i - 1; j++)
		{
			printf(" ");
		}
		for (int j = 1; j <= 2 * (b - i) + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值