IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 通过for循环绘制爱心 -> 正文阅读

[C++知识库]C语言 通过for循环绘制爱心

#include <stdio.h>
#include <windows.h>
void sw()
{int i;system("color 0c");
for(i=1;i<=31;i++)//编写爱心的第四、五、六printf("*");
printf("\n");
}
void main()
{int i,j,k,h;
system("color 0c");
/*for(i=1;i<=26;i++)//编写爱心的第一行    //第一种(i<=5)?printf(" "):((i>=12&&i<=20)?printf(" "):printf("*"));
printf("\n");
for(i=1;i<=28;i++)//编写爱心的第二行
(i<=3)?printf(" "):((i>=14&&i<=18)?printf(" "):printf("*"));
printf("\n");
for(i=1;i<=30;i++)//编写爱心的第三行
(i==1||i==16)?printf(" "):printf("*");printf("\n");*/
/*k=2;       //第二种
for(i=20;i>=16;i-=2)//编写爱心前三行
{for(j=1;j<=46-i;j++)
(j<=i-15)?printf(" "):((j>=i-(4*k)&&j<=i)?printf(" "):printf("*"));
k--;
printf("\n");
}
*/for(j=5,k=12,h=20;j>=1,k<=16,h>=16;j-=2,k+=2,h-=2)   //编写爱心前三行
{for(i=1;i<=31-j;i++)(i<=j)?printf(" "):((i>=k&&i<=h)?printf(" "):printf("*"));printf("\n");
}
sw();
sw();
sw();
for(i=1;i<=30;i++)
(i==1)?printf(" "):printf("*");
printf("\n");
for(i=1;i<=15;i+=2)//编写爱心的底部
{for(j=-1;j<=27-i;j++)
{if(i<j)printf("*");
else printf(" ");
}
printf("\n");
}
}

void sw();为自定义函数
是为了输出爱心的第四五六行
自定义函数在主函数前在主函数中调用时可以不用再对自定义函数进行声明。

#include <windows.h>
是为了让最后的爱心变为红色
system(“color 0c”)就是调用红色
(第一次用如果用错了,还望见谅,并请各位大佬不吝赐教)。

其中爱心的前三行一共用了三种方法,不过第二种和第三种差不多
第一种在第一个/……/中
第一种方法是一个for循环中为爱心的一行, 总共为三个for循环
因为爱心为31列而第一行中的前5格和第12到20格以及26格以后为空白,所以直接管前26格。
当i<=5时,即前5格输出空白
当12=<i<=20时,即第12到20格输出空白而别的格都输出*号

其中( )?A:B 表示当括号中成立时执行A否执行B
第二三行和上面类似

第二种在第二个/……/中
从图中爱心的前三行可以看出一个规律:
第一行的第20格比第5格多15、比第12格多8第二行的第18格比第3格多15、比第14格多4第三行的第16格比第1格多15、比第16格多0而前三行每行最右端的空白格数和最左端的空白格数相同,且每行最右端的"*"比前一行往后移两位。
定义的i=20是第一行第20个空白格
i>=16是因为第一行的第20个空白格往前移两格到它第二行的位置,第三行也同样。
j<=46-i 是由31-(i-15)得来,因为若把整个爱心看成矩形网格,则有31列,(i-15)是代表每行最左端有几个空格,而最左端和最右端的空格数相等,所以这样来进行判断每行最右端的位置。
而i-(4
k) 是来表示前三行中间空格部分的最左端的空白格的位置

而四五六七行以后的部分为爱心的底部爱心的底部和上面的类似

下面就是最后绘制的爱心的效果图:
这就是最后绘制的爱心的效果图

刚学的C语言,如果哪里出错了或者有更好的方法,还望大家不吝赐教。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:05:37  更:2021-12-15 18:07:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:20:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码