【C语言练习——打印空心三角形】

活动地址:毕业季·进击的技术er

夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始。这是一个毕业的月份,每年看到很多毕业生都离校上班,在校生准备考试和暑假实习,都非常感慨,不管怎样,作为在校生,玩好的同时,还是要能够扎实的学习,打好坚实基础,从初学C语言开始,为后续的实习找工作做准备。


前言

前面已经在【C语言练习——打印下三角及其变形】 中学过了打印三角形。本文练习打印空心三角形。
空心三角形是一种特殊的三角形,就是三角形的边。本文主要是写关于三角形的练习题,在屏幕上打印空心三角形。

在这里插入图片描述


1、打印图形1

//空心三角形
int main()
{
	int n = 5;
	int i = 0;
	while (scanf("%d", &n) != EOF)
	{
		for (int i = 1; i <= n; i++)
		{
			if (i < n && i>2)
			{
				for (int j = 1; j <= i; j++)
				{
					if (j > 1 && j < i)
						printf(" ");
					else
						printf("*");
				}
			}
			else
			{
				for (int j = 1; j <= i; j++)
				{
					printf("*");
				}
			}
			printf("\n");
		}
	}
	return 0;
}

结果见下图,当行数小于4,没有空心三角形的效果:

在这里插入图片描述
当行数大于4时:

在这里插入图片描述

2、打印图形2

int main()
{
	int row = 0;
	while (scanf("%d", &row) != EOF)
	{
		for (int i = 0; i < row; i++) //行
		{
			for (int j = 0; j <= i; j++) //\\列
			{//满足条件输出 空格,即不在边界上就是 空格
				if (i - 1 && i - j && j != 0 && i != row - 1)
					printf("  ");
				else
					printf("* "); //边界上的点都是*
			}
			printf("\n"); //换行
		}
	}
	return 0;
}

结果见下图,图形2和图形1的区别就是空格,代码也简洁很多:

在这里插入图片描述

3、打印图形3

#include <stdio.h>
int main()
{
	int n = 0;
	while (scanf("%d", &n) != EOF)
	{
		for (int i = 0; i < n; i++)  //外循环为行
		{
			for (int j = 0; j < n; j++) //内循环为列
			{//满足条件输出 * ,即在边界上就是 *
				if (j == 0 || i == n - 1 || i == j)
					printf("* ");
				else
					printf("  ");//不在边界上的点都是空格
			}
			printf("\n");
		}
	}
}

结果见下图,图形3和图形2一样,只不过判断条件有所区别,这也无所谓:

在这里插入图片描述


总结

本文练习打印空心三角形,主要练习了:

  • 外循环、内循环的应用
  • 注意行数、空格数、符号*数之间的数学关系式

实现同样的效果,可能代码的思路不一样,代码的精简程度就不一样。只有打印结果才能验证自己写的代码实现结果和自己的想法是否一致,感觉自己又水了一篇。作为在校生要继续学习。

活动地址:毕业季·进击的技术er

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初学C语言者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值