c语言实现爱心代码动态加名字

以下是一个C语言爱心代码动态加名字的示例程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define WIDTH 80
#define HEIGHT 40
void drawHeart(int x, int y);
void clearScreen();
void sleep(int milliseconds);
void printName(char* name);
int main()
{
    char name[100];
    printf("请输入您的名字:");
    scanf("%s", name);
    clearScreen();
    for (int y = HEIGHT / 2; y >= -10; y--)
    {
        clearScreen();
        drawHeart(WIDTH / 2, y);
        printName(name);
        sleep(50);
    }
    return 0;
}
void drawHeart(int x, int y)
{
    double a, b, distance;
    for (int i = 0; i < HEIGHT; i++)
    {
        for (int j = 0; j < WIDTH; j++)
        {
            a = (double)(j - x) / 5;
            b = (double)(i - y) / -2;
            distance = sqrt(a * a + b * b);
            if (distance < 1.5)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
}
void clearScreen()
{
    system("cls");
}
void sleep(int milliseconds)
{
    clock_t start = clock();
    while ((clock() - start) * 1000 / CLOCKS_PER_SEC < milliseconds);
}
void printName(char* name)
{
    int nameLength = strlen(name);
    int x = WIDTH / 2 - nameLength / 2;
    printf("\n");
    for (int i = 0; i < x; i++)
    {
        printf(" ");
    }
    printf("%s", name);
}

程序实现的功能是:用户输入名字后,屏幕上出现一个动态的爱心图案,同时名字从屏幕上方逐渐下降,并最终停留在爱心图案的中心位置。程序中采用了Windows下的system("cls")函数来清屏,因此程序只能在Windows下运行。如果要在其他操作系统下运行,需要修改清屏函数。