c语言生成一个跳动的红色爱心
时间: 2023-05-26 11:02:29 浏览: 86
以下是示例代码,可以生成一个跳动的红色爱心。
```
#include <stdio.h>
#include <windows.h>
int main()
{
int i, j;
while (1) {
system("cls"); // 清除屏幕
for (i = 0; i < 20; i++) {
for (j = 0; j < 70; j++) {
if (i * i + j * j <= 225) {
printf("%c[1;31m%c%c[0m", 0x1B, '*', 0x1B);
} else {
printf(" ");
}
}
printf("\n");
}
Sleep(200);
}
return 0;
}
```
请注意,这段代码只适用于 Windows 平台,如果要在其他平台运行,可能需要更改代码。
相关问题
生成一个,跳动的爱心C语言代码
以下是一个简单的跳动爱心C语言代码,你可以在终端或IDE中运行它:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
char heart[] = " ♥♥ ♥♥\n ♥♥♥♥♥♥♥\n♥♥♥♥♥♥♥♥♥\n ♥♥♥♥♥♥♥\n ♥♥♥♥♥\n ♥♥♥\n ♥\n";
int len = sizeof(heart) - 1;
int i = 0;
while (1) {
system("clear"); // 清屏
for (int j = 0; j < i; j++) {
printf(" ");
}
printf("%.*s", len, heart);
fflush(stdout); // 刷新输出缓冲区
usleep(100000); // 延迟100毫秒
i = (i + 1) % 80; // 控制位置,避免越界
}
return 0;
}
```
运行后,你将看到一个跳动的爱心,不断在屏幕上移动。
用C语言写一个跳动爱心的图形
以下是C语言代码实现一个跳动的爱心图形,您可以在终端中运行查看效果:
```c
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define PI 3.14159265359
#define HEART_WIDTH 34
#define HEART_HEIGHT 30
// 绘制爱心
void draw_heart(int x, int y, double size, int color) {
int i, j;
double angle, x1, y1;
// 绘制左半边爱心
for (i = HEART_HEIGHT / 2; i >= 0; i--) {
angle = PI - i * PI / HEART_HEIGHT;
x1 = HEART_WIDTH / 2 - sqrt(i * size);
y1 = i * size - 5;
for (j = -x1; j <= x1; j++) {
if (j == 0) continue;
if (color == 0)
printf("\033[31m♥\033[0m");
else if (color == 1)
printf("\033[32m♥\033[0m");
else if (color == 2)
printf("\033[33m♥\033[0m");
else
printf("\033[34m♥\033[0m");
}
for (j = x1; j >= -x1; j--) {
if (j == 0) continue;
if (color == 0)
printf("\033[31m♥\033[0m");
else if (color == 1)
printf("\033[32m♥\033[0m");
else if (color == 2)
printf("\033[33m♥\033[0m");
else
printf("\033[34m♥\033[0m");
}
printf("\n");
}
// 绘制右半边爱心
for (i = 0; i <= HEART_HEIGHT / 2; i++) {
angle = i * PI / HEART_HEIGHT;
x1 = HEART_WIDTH / 2 - sqrt(i * size);
y1 = i * size - 5;
for (j = -x1; j <= x1; j++) {
if (j == 0) continue;
if (color == 0)
printf("\033[31m♥\033[0m");
else if (color == 1)
printf("\033[32m♥\033[0m");
else if (color == 2)
printf("\033[33m♥\033[0m");
else
printf("\033[34m♥\033[0m");
}
for (j = x1; j >= -x1; j--) {
if (j == 0) continue;
if (color == 0)
printf("\033[31m♥\033[0m");
else if (color == 1)
printf("\033[32m♥\033[0m");
else if (color == 2)
printf("\033[33m♥\033[0m");
else
printf("\033[34m♥\033[0m");
}
printf("\n");
}
}
int main() {
int i, j, color;
double size = 0.2;
srand(time(NULL));
while (1) {
// 随机生成颜色
color = rand() % 4;
// 随机生成大小
size += (rand() % 2 == 0 ? 0.1 : -0.1);
size = size < 0.1 ? 0.1 : (size > 0.3 ? 0.3 : size);
// 清空终端
system("clear");
// 绘制爱心
draw_heart(0, 0, size, color);
// 延时
usleep(300000);
}
return 0;
}
```
这段代码使用了 ANSI 转义序列来控制终端输出的颜色,使得爱心可以随机生成颜色。同时,使用了 usleep 函数来实现延时,让爱心可以跳动起来。