C:谁说代码不浪漫?谁说代码不有趣?
高端的食材往往需要最歪的厨子,才能做出最正宗的味道!!!
大家好,我是渴望力量的佩奇,每天吃着代码做的饲料长大的...
这一周我整理了一下不规则菱形图案的打印以及其他图案的解题思路,用最基础的语法完成各种你没打过的菱形图案,可能内容还不是很全面,但还是认真整理了一下子的,希望小家伙们赶紧学会拿去提升小小的装一下hhh.
并且呢,本章内容特意给小伙伴们准备了一份大礼包:44个 * 组建的心形图案,意味着生生世世永相爱,需要的小伙伴自取噢!!!
本期目录
1. 有趣的菱形之交错排列
2.有趣的菱形之空心菱形
3.特例介绍之解题方向
4.浪漫的C:心形打印
本章博客专于各种不寻常图案的打印以及爱心的打印,学完就可以拿去跟同学们浅吹一下了!
1. 有趣的菱形之交错排列
先来看看这个交错排列的菱形长什么样吧,看图吧,比较好观察一些 。
仔细看这个菱形,不难发现,每个 * 对应的列都是空格,也就是说,在每一个 * 后面都有一个字节是用来存放空格的,我们假设第四行前面有1个空格,那么以此类推,第三行前面就有4个空格,第二行前面有7个空格,第一行前面就有10个空格,然后上下三角区为对称图形,那么在这里调用数学函数取用绝对值来计算,类似于找空格的规律去找 * 的规律,最后的代码成型就是这样的:
#include #includevoid main(){int i,j,k,t;for(i=1;i<=7;i++){k=abs(4-i);for(t=1;t<=3*k+1;t++)printf(" ");for(j=1;j<=7-2*k;j++)printf("* ");printf("\n\n");}}
2.有趣的菱形之空心菱形
话不多说,看图:
思路如上,找到空格和 * 的规律就可以解决这个代码,但不同的是这个代码虽然上下是对称的,但是无法满足上下三角区同时用一个式子表示,也许只是我没找到,如果有能一次性解决的同学记得教教博主,可不兴藏着掖着哈!
#include void main(){int i,j;for(i=1;i<=4;i++){for(j=1;j<=3+i;j++){if(j==3+i||j==5-i)printf("*");elseprintf(" ");}printf("\n");}for (i=1;i<=3;i++){for(j=1;j<=7-i;j++){if(j==1+i||j==7-i)printf("*");elseprintf(" ");}printf("\n");}}
3.特例介绍之解题方向
其实C语言打印图案的题目各种各样,也不定就是打印菱形,就比如说等腰梯形啊.空心等腰梯形啊.又或是正六边形啊,各种各样无奇不有,所以这里的特例介绍主要是教方法,朋友们以后在编程生涯还可能会碰到各种图案的打印,所以说授之以🐟不如授之以渔,方法不难理解,从上面的案例中不难发现,只要找到空格的表达式以及 * 的表达式,再用最简单的 for 循环语句二者结合,打印图案的题目自然就是小菜一碟。当然,题目各异,有些表达式并不是那么容易找出,如果有的话,本人很欢迎帮助同学们解答!
4.浪漫的C:心形打印
44颗小星星代表着生生世世用相爱,谁说代码不浪漫了?
#include void main(){int i,j;for(i=1;i<=2;i++){for(j=1;j<=3-i;j++)printf(" ");for(j=1;j<=2*i;j++)printf("*");for(j=1;j<=6-2*i;j++)printf(" ");for(j=1;j<=2*i;j++)printf("*");printf("\n");}for(i=1;i<=3;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=14-2*i;j++)printf("*");printf("\n");}printf(" **\n");}
快来领取你的爱心吧!
本期博客就到此为止了,喜欢博主的内容可以关注下往期作品噢!
1. 玩转辗转相除法 https://blog.csdn.net/m0_69097508/article/details/124052988
2. 至高的美学之斐波那契 https://blog.csdn.net/m0_69097508/article/details/124208244
3. 输入一个不多于五位数的正整数 https://blog.csdn.net/m0_69097508/article/details/124208244