以下是一个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下运行。如果要在其他操作系统下运行,需要修改清屏函数。
评论