例20:C语言实现打印出心形,初学者的表白神器。
解题思路:这道例题我分了4部分,前3行一部分,4-6行一部分,7-13行一部分,最后一行一部分,读者请仔细阅读注释,小林写的很详细了。
前三行输出,为了让初学者知道,即使最笨的方法也是可以打印的。
![](https://v2ce.com/wp-content/uploads/2023/03/picture-1856.jpg)
4-6行,这三行输出效果一样。
for(i=0;i<3;i++)
{
for(j=0;j<29;j++)
{
printf("*");
}
printf("\n");
}
最后一行,只是输出一个*。
for(i=0;i<14;i++)
{
printf(" ");
}
printf("*\n");
源代码演示,前三行代码样式请参考上述截图,文章中的源码空格有点小bug:
#include<stdio.h>//头文件
int main()//主函数入口
{
printf(" **** ****\n");//打印第一行
printf(" ********* *********\n");//打印第二行
printf("************* *************\n");//打印第三行
int i,j;//定义变量
for(i=0;i<3;i++)//打印4-6行,一共3行,因此i小于3
{
for(j=0;j<29;j++)//限制每行输出*的个数
{
printf("*");//这三行只打印*号,无空格输出
}
printf("\n");//打印完一行需要进行换行
}
for(i=0;i<7;i++) //打印7-13行,一共7行,因此i小于7
{
for(j=0;j<2*(i+1)-1;j++)//这个for循环和下面的for是并列的
{
printf(" ");//打印空格
}
for(j=0;j<27-i*4;j++)//读者可以带入几个数找出条件
{
printf("*");//打印*
}
printf("\n");
}
for(i=0;i<14;i++)//打印最后一行的*
{
printf(" ");//打印空格
}
printf("*\n") ;//打印*
return 0;
}
编译运行结果如下:
上述代码中的*,读者可以自行替换,读者可以用这个符号替换试试♥,看是否可行,自己动脑思考一下。
第二种表白源代码演示:
#include<stdio.h>//头文件
#include<math.h>//为了引用pow函数
int main()//主函数入口
{
float y, x, z;//定义浮点型变量
printf("独时想起你\n");//提示语句
printf("落泪时想搂住你\n");//提示语句
printf("开心时想扑向你\n");//提示语句
printf("兴奋时想吻你\n");//提示语句
printf("一切尽在这三个字签名没有签上\n");//提示语句
printf("\n");//换行
for (double y = 2.5; y >= -1.6; y = y - 0.2)
{
for (double x = -3; x <= 4.8; x = x + 0.1)
{
//下面是个三目运算,读者请仔细看下,||这个是或
(pow((x*x + y*y - 1), 3) <= 3.6*x*x*y*y*y
|| (x>-2.4 && x<-2.1 && y<1.5 && y>-1)
|| (((x<2.5 && x>2.2) || (x>3.4 && x<3.7)) && y>-1 && y<1.5)
|| (y>-1 && y<-0.6 && x<3.7 && x>2.2)) ? printf("*") : printf(" ");
}
printf("\n");//换行
}
getchar();
return 0;//函数返回值为0
}
编译运行结果如下:
C语言打印出心形的方法有很多,读者可以自己多尝试尝试,即使一行一行用printf也是一种方式,小林能帮你的只能到这了,女朋友还是要自己找
以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~
更多案例可以go公众号:C语言入门到精通
推荐一下腾讯云比较好用的产品:云服务器,云硬盘,数据库(包括MySQL、Redis、MongoDB、SQL Server),CDN流量包,短信流量包,cos资源包,消息队列ckafka,点播资源包,实时音视频套餐,网站管家(WAF),大禹BGP高防(包含高防包及高防IP),云解析,SSL证书,手游安全MTP,移动应用安全、 云直播等等。
正文完