C语言之打印菱形

目录

题外话

1.打印简单菱形

2.进阶,打印中空菱形

3.再次进阶,打印自定义中空菱形

4.优化

 


题外话

在这里呢,我先说一下我今天所讲的内容,首先是菱形的打印,然后是进阶到打印空菱形,再进阶到自定义打印,我呢之前是连打印菱形都不会的,经过这么些天的写代码,改代码,真的觉得自己进步了很多,所如果看到这篇博客的小伙伴,真的不要担心自己写不好代码,只要你肯下功夫就一定能成为一个好的程序员。就像我之前看过一个报道,采访的是一个没有高考直接保送北大的小伙子,主持人问他你能有今天的成就你觉得天赋和努力哪个更重要,没想到小伙子说:我觉得这二者不能分开来讲吧,有时候,努力就是一种天赋,我当时听了这话深受感触,是啊,谁又能主宰别人的命运呢,只有自己可以,所以呢,我写这些话也是对自己的鞭策吧,让我们一起努力,一起坚持把键盘敲烂!

1.打印简单菱形

这里,我就拿5行的菱形举例了,这五行菱形呢,分为上和下两部分,一个是三角形,一个是倒着的三角形没有角,这里呢我就拿正的三角形进行讲解,如果你细心一点应该不难发现,要想实现这个三角形的打印,要有" "和“ *”,我们可以剥离来看,我们先不看空格,那么“*”就是一个直角三角形对吧,因为空格的出现才把“*给挤走的,倒三角也是一样的原理,这里我们一定要去画图去找关系才可以的,你想是很难想出来的,一定要多动手。好了,上代码和运行截图以及我的理解:

为什么说一定要去画图,就是因为这里面的取等条件的判断,只有你画出图来,思路清晰,才知道其中含义,这里我的答案不是唯一的,大家如果感兴趣可以自己去写属于自己的代码。

2.进阶,打印中空菱形

好了,现在菱形打印出来了,是不是感觉意犹未尽,我当时也有这种感觉,但是那时候会的太少了,所以也没深挖,但是现在不一样了,我可以给你们讲啊,嘿嘿,觉得还不错的小伙伴能点点关注收藏吗,求求了。好了,回归正题,那么空格菱形怎么打印呢,只需要在合适的地方加上限制条件就OK了。好了,我先上代码加运行截图,在讲解:

这里来看,我只是再循环里面加上了if语句,起到了限制作用,因为我们要打印中空菱形吗,所以只要 把菱形的边角打印出来,剩下的打印空格不就好了,这里比较好想的是j==0;因为第一个肯定是要打印的,那最后一个怎么弄呢,还是老办法,画图,真的很重要。画图,画图,画图!!!重要的事情说三遍,我这里就不去演示了。

3.再次进阶,打印自定义中空菱形

这次呢,又在中空菱形的基础上加上自定义了,其是想明白是不难的,难在画图和理解上,这里我给大家提供我的思路,就是先去列举5行,7行,9行怎么实现“ ”和“*”的打印,这个规律性很强,要去理解j和i的关系。

4.优化

这里呢我对其做出了优化,因为打印的菱形必然为奇数行,所以我对其进行了断言,只要输入偶数,就直接报错,不知道的小伙伴不要急,用assert进行断言,我这里直接给查询链接,https://legacy.cplusplus.com/reference/clibrary/

上代码:

当我输入为偶数,直接报错。 

当时我做出来有点小激动,哈哈,那今天我就分享到这里了,希望大家能点一个大大的赞 ,嘿嘿,有什么问题评论去留言或者加我好友,我看见一定回,另外如果我有什么地方出问题了,欢迎大家告知,感谢,下次再见。