有C语言写一个跳动的爱心
时间: 2023-02-27 22:25:01 浏览: 41
你好!下面是用C语言写的一个跳动的爱心程序:
```
#include <stdio.h>
#include <math.h>
#include <windows.h>
int main()
{
int i, j;
double x, y, r;
while (1)
{
system("cls");
for (i = 30; i >= -30; i--)
{
for (j = -30; j <= 30; j++)
{
x = j / 30.0;
y = i / 30.0;
r = sqrt(x * x + y * y);
if (r > 1)
{
putchar(' ');
}
else
{
putchar('*');
}
}
putchar('\n');
}
Sleep(100);
}
return 0;
}
```
希望对你有所帮助!
相关问题
c语言写一个跳动爱心代码
以下是一个简单的 C 语言代码,可以在终端中实现跳动的爱心:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main()
{
char heart[6][7] = {
{" ** "},
{" **** "},
{"******"},
{"******"},
{" **** "},
{" ** "}
};
int i, j, x = 0, y = 0;
int dx = 1, dy = 1;
while(1)
{
for(i = 0; i < y; i++)
printf("\n");
for(i = 0; i < 6; i++)
{
for(j = 0; j < x; j++)
printf(" ");
printf("%s\n", heart[i]);
}
x += dx;
y += dy;
if(x == 0 || x == 60)
dx = -dx;
if(y == 0 || y == 20)
dy = -dy;
usleep(50000);
system("clear");
}
return 0;
}
```
该代码中定义了一个 6 行 7 列的字符数组来存储爱心的形状。然后使用循环在终端中输出爱心,并且通过改变 x 和 y 的值来控制爱心的位置。最后使用 `usleep` 函数和 `system("clear")` 命令来实现动画效果。
用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 函数来实现延时,让爱心可以跳动起来。