C语言爱心扩展加思路
前言:
输出基础爱心代码:
请看代码:
#include<stdio.h> #include<windows.h> int main() { float x, y, a; for (y = 1.5; y > -1.5; y -= 0.1) { for (x = -1.5; x < 1.5; x += 0.05) { a = x * x + y * y - 1; if (a * a * a - x * x * y * y * y <= 0) { printf("v"); Sleep(1); } else printf(" "); } printf(" "); } printf(""); return 0; }
请看代码运行示范:
我们已经实现了普通的输出爱心。
基础爱心代码小疑惑:
此段代码的疑惑:
- sleep是什么
- 为什么会有Windows.h 解答中:
- 因为我们是通过的库函数也就是头文件来获取计算机的命令
- 这两个就是一对夫妻(可以这么理解)。
- 注意:Sleep s要大写(1000)=1s。
- 还有一种情况我们不写window.h
- 我们也是可以进行延时不过没有正规的写法精确
作者内心OS:
- 太单调无新意。因为要表达一个爱心肯定得跳起来啊虽然我们这里实现不了但是我们可以在基础上面实现颜色的变换至少也不那么枯燥。
- 那么步骤就是: 第一先输出颜色。(请看下方第6点) 第二再进行延时程序。(请看下方第4点) 以下是扩展之后的程序
扩展爱心:
#include<stdio.h> void delay() { int i; for(i=0;i<=100000000;i++); } int main() { float x, y, a; { for (y = 1.5; y > -1.5; y -= 0.1) { for (x = -1.5; x < 1.5; x += 0.05) { a = x * x + y * y - 1; if (a * a * a - x * x * y * y * y <= 0) { printf("v"); delay(); } else printf(" "); } printf(" "); system("color 0c"); delay(); system("color 0e"); delay(); } printf("");//对话区域。 return 0; }
请看代码运行结果: 颜色是会产生变换的只是小编我图片拿不出来😱😱
文章疑问:
- 主函数上面的程序for循环为什么要使用分号。
- 主函数为什么要使用float 而不使用double。
- system究竟是干嘛的。
文章解惑中…
- 因为这一段意思是使cpu实现一个空跑俗称原地转圈。否则程序会直接输出到下方则实现不了延时的目的且还会报错。
- float是四字节double是八字节主要区别是单精度比双精度更加简洁而双精度更为精确。
- system说白了就是一个调用系统的命令我们上面所写的格式是非常标准的写法记就行了。 (1) 我们可以通过改变 system(“color 0e”); 改变0e的数值 注意:只能是十六进制也就是0 1 2 3 4 5 6 7 8 9 A B C D E F。十六个数字 0是背景代表黑色 e代表黄的也就是改变字体的颜色。
小知识: 我们在使用double与float时候我们需要区分环境如果只是日常练习玩一下没问题。如果我们要做一些项目的话我们还是要使用double否则会崩到时候公司损失了多少钱你就哭吧你。 这里随便你使用double还是float。
结语
最后真诚的希望官方以及读者给新人多多鼓励我也会努力创作更多的优质内容谢谢大家了。
下一篇:
Java算法之入门--位运算