用c语言编写一个会跳动的心形的程序,附上所爱的人的姓名
时间: 2024-02-05 17:01:18 浏览: 36
```c
#include <stdio.h>
#include <math.h>
#include <unistd.h>
#define NUM_OF_POINTS 100
void printHeartName(char *name) {
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("\t\t\t\t\t I love you, %s!\n\n\n\n\n\n\n\n\n\n\n", name);
}
void printHeart() {
int heart[NUM_OF_POINTS][2];
int i;
double x, y;
for (i = 0; i < NUM_OF_POINTS; i++) {
x = 16 * pow(sin(i), 3);
y = -((13 * cos(i)) - (5 * cos(2 * i)) - (2 * cos(3 * i)) - cos(4 * i));
heart[i][0] = round(x);
heart[i][1] = round(y);
}
for (int row = -20; row <= 20; ++row) {
for (int col = -40; col <= 40; ++col) {
int isHeartPixel = 0;
for (i = 0; i < NUM_OF_POINTS; i++) {
if (heart[i][0] == col && heart[i][1] == row)
isHeartPixel = 1;
}
if (isHeartPixel)
printf("*");
else
printf(" ");
}
printf("\n");
}
usleep(1000000);
system("clear");
}
int main() {
char name[100];
printf("请输入您爱的人的姓名:");
fgets(name, 100, stdin);
name[strlen(name) - 1] = '\0'; // 移除末尾换行符
while (1) {
printHeart();
printHeartName(name);
}
return 0;
}
```
这个程序可以用来绘制一个跳动的心形,并附上所爱的人的姓名。使用`c`语言编写。程序中通过计算心形上的每个点的坐标,然后遍历整个范围内所有的点,用星号表示心形上的点,用空格表示其他点,从而实现了在终端中绘制出一个心形。同时,通过`usleep(1000000)`函数使得终端每秒刷新一次,从而实现了心形跳动的效果。