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

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


打印空心三角形

  • 前言
  • 1、打印图形1
  • 2、打印图形2
  • 3、打印图形3
  • 总结



前言

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

3打印图案空心的三角形 python 打印空心三角形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,没有空心三角形的效果:

3打印图案空心的三角形 python 打印空心三角形c语言_c++_02


当行数大于4时:

3打印图案空心的三角形 python 打印空心三角形c语言_打印图形_03

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打印图案空心的三角形 python 打印空心三角形c语言_c语言_04

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一样,只不过判断条件有所区别,这也无所谓:

3打印图案空心的三角形 python 打印空心三角形c语言_3打印图案空心的三角形 python_05


总结

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

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

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

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