0
点赞
收藏
分享

微信扫一扫

C:谁说代码不浪漫?谁说代码不有趣?

unadlib 2022-04-20 阅读 64

       高端的食材往往需要最歪的厨子,才能做出最正宗的味道!!!   

 

       本章博客专于各种不寻常图案的打印以及爱心的打印,学完就可以拿去跟同学们浅吹一下了!

      先来看看这个交错排列的菱形长什么样吧,看图吧,比较好观察一些 。

 

 

       仔细看这个菱形,不难发现,每个 * 对应的列都是空格,也就是说,在每一个 * 后面都有一个字节是用来存放空格的,我们假设第四行前面有1个空格,那么以此类推,第三行前面就有4个空格,第二行前面有7个空格,第一行前面就有10个空格,然后上下三角区为对称图形,那么在这里调用数学函数取用绝对值来计算,类似于找空格的规律去找 * 的规律,最后的代码成型就是这样的:

#include <stdio.h>
#include<math.h>

void 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");
	}
}

         话不多说,看图:

        思路如上,找到空格和 * 的规律就可以解决这个代码,但不同的是这个代码虽然上下是对称的,但是无法满足上下三角区同时用一个式子表示,也许只是我没找到,如果有能一次性解决的同学记得教教博主,可不兴藏着掖着哈!

#include <stdio.h>

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("*");
			else
				printf(" ");
		}
		printf("\n");
	}
	for (i=1;i<=3;i++)
	{
		for(j=1;j<=7-i;j++)
		{
			if(j==1+i||j==7-i)
				printf("*");
			else
				printf(" ");
		}
		printf("\n");
	}
}

       其实C语言打印图案的题目各种各样,也不定就是打印菱形,就比如说等腰梯形啊.空心等腰梯形啊.又或是正六边形啊,各种各样无奇不有,所以这里的特例介绍主要是教方法,朋友们以后在编程生涯还可能会碰到各种图案的打印,所以说授之以🐟不如授之以渔,方法不难理解,从上面的案例中不难发现,只要找到空格的表达式以及 * 的表达式,再用最简单的 for 循环语句二者结合,打印图案的题目自然就是小菜一碟。当然,题目各异,有些表达式并不是那么容易找出,如果有的话,本人很欢迎帮助同学们解答!

 

 

     44颗小星星代表着生生世世用相爱,谁说代码不浪漫了?

 

#include <stdio.h>

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");
}

        快来领取你的爱心吧!

 

 

举报

相关推荐

0 条评论