#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main(int argc, char* argv[]) {
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;
putchar(a * a * a - x * x * y * y * y <= 0.0 ? '*' : ' ');
}
system("color 0c");
putchar('\n');
}
printf(" 小x宝宝天天开心\n");
return 0;
}
1. 头文件引入
- 代码开头引入了 <stdio.h> 、 <stdlib.h> 和 <windows.h> 三个头文件。
- <stdio.h> 提供了标准输入输出函数的声明,比如 putchar 、 printf 等在这段代码中用到的函数。
- <stdlib.h> 通常用于一些通用的工具函数,在这里引入可能是为了使用 system 函数(虽然在这段代码里它的使用方式有点特别,后面会讲)。
- <windows.h> 主要用于Windows操作系统相关的功能调用,在这里应该是用于设置控制台窗口的颜色(通过 system("color 0c"); )。
2. 主函数部分
- 在 main 函数中:
- 首先声明了三个浮点数变量 x 、 y 和 a 。
- 然后有两层嵌套的 for 循环:
- 外层循环通过 for (y = 1.5; y > -1.5; y -= 0.1) 控制 y 的值从 1.5 逐渐减小到 -1.5 ,每次步长为 0.1 。
- 内层循环通过 for (x = -1.5; x < 1.5; x += 0.05) 控制 x 的值从 -1.5 逐渐增加到 1.5 ,每次步长为 0.05 。
- 在每次内层循环中:
- 先计算 a 的值,通过 a = x * x + y * y - 1 。
- 然后根据条件 a * a * a - x * x * y * y * y <= 0.0 判断,如果满足该条件则通过 putchar('*') 输出一个星号 * ,否则通过 putchar(' ') 输出一个空格。这个条件判断和输出的操作实际上是在通过某种数学关系来绘制一个爱心图案。
- 在内层循环结束后,通过 system("color 0c"); 设置控制台窗口的颜色为亮红色( 0c 是Windows下设置控制台颜色的一种参数格式, 0 表示背景色, c 表示前景色,这里具体是亮红色前景色搭配默认背景色)。然后通过 putchar('\n'); 换行,准备进行下一行的输出操作。
- 最后,在两层循环都结束后,通过 printf(" 小x宝宝天天开心\n"); 输出一段祝福的话语。