```c
include
// 函数用于打印爱心的上半部分
void printUpperHeart(int size) {
for (int i = 0; i < size / 2; i++) {
for (int j = 0; j < size / 2 - i - 1; j++) {
printf(" ");
}
for (int j = 0; j < (2 * i + 1); j++) {
printf("*");
}
for (int j = 0; j < size / 2 - i - 1; j++) {
printf(" ");
}
printf("\n");
}
}
// 函数用于打印爱心的下半部分
void printLowerHeart(int size) {
for (int i = size / 2; i < size; i++) {
for (int j = 0; j < size / 2 - i; j++) {
printf(" ");
}
for (int j = 0; j < (2 * (size - size / 2) + 1); j++) {
printf("*");
}
for (int j = 0; j < size / 2 - i; j++) {
printf(" ");
}
printf("\n");
}
}
int main() {
int size = 20; // 可以调整爱心的大小
printUpperHeart(size);
printLowerHeart(size);
return 0;
}
```
这个程序首先定义了两个函数`printUpperHeart`和`printLowerHeart`,分别用于打印爱心的上半部分和下半部分。然后在`main`函数中调用这两个函数,传入一个整数`size`作为爱心的宽度。你可以通过调整`size`的值来改变爱心的大小。
运行这个程序后,你将在控制台上看到一个由字符组成的爱心图案。如果你想要一个更复杂的动态爱心效果,可以考虑使用图形库(例如EasyX)来实现。