C语言设计一个闪闪的圣诞树

Maren ·
更新时间:2024-11-14
· 749 次阅读

控制台打印一个圣诞树:简简单单的C语言知识,真的很基础,小白也能看得懂哦

/******************************* 圣诞树 byC语言小白入门 *******************************/ #include<stdio.h> #include <stdlib.h> #include <time.h> #include<Windows.h> #define X 25 //画面长度 int background[20][2 * X] = { 0 }; int SNOW = 30; //雪花密度 /******************************* 画树 *******************************/ void tree() { int i, j, x, y; for (i = 0; i < 3; i++) { y = i; for (j = 0; j < 2 * i + 1; j++) { background[y][(X - i) + j] = 1; } } for (i = 0; i < 5; i++) { y++; for (j = 0; j < 2 * (i + 1) + 1; j++) { background[y][(X - (i + 1)) + j] = 1; } } for (i = 0; i < 7; i++) { y++; for (j = 0; j < 2 * (i + 3) + 1; j++) { background[y][(X - (i + 3)) + j] = 1; } } for (i = 0; i < 5; i++) { y++; for (j = 0; j < 3; j++) { background[y][X + (2 * j - 2)] = 2; } } } /******************************* 画雪花 *******************************/ void snow() { int i; srand(time(NULL)); for (i = 0; i < SNOW; i++) { int x, y; x = rand() % (2 * X); y = rand() % 20; if ((background[y][x] == 0)) { background[y][x] = 3; } } } /******************************* 打印 *******************************/ void display() { int x, y; for (y = 0; y < 20; y++) { for (x = 0; x < 2 * X; x++) { if (background[y][x] == 0) { printf(" "); } if (background[y][x] == 1) { printf("0"); } if (background[y][x] == 2) { printf("|"); } if (background[y][x] == 3) { printf("*"); } } printf("\n"); } } /******************************* 清除雪花 *******************************/ void clear_snow() { int i, j; for (i = 0; i < 20; i++) { for (j = 0; j < 2 * X; j++) { if (background[i][j] == 3) { background[i][j] = 0; } } } } void main() { tree(); while (1) { snow(); display(); Sleep(1); system("cls"); clear_snow(); } }

最终的效果图

也没有那么高大上的啦,就很简单的,效果的话是动态的,可以闪动的呢。

如果大家看以上代码不过瘾,大家可以参考下这篇文章。

使用C语言编写圣诞表白程序

以上所述是小编给大家介绍的C语言设计一个闪闪的圣诞树,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!

您可能感兴趣的文章:深入探讨C语言中局部变量与全局变量在内存中的存放位置c语言全局变量和局部变量问题及解决汇总详解C语言中的字符串拼接(堆与栈)C语言 数据结构之连续存储数组的算法浅谈Linux C语言动态库及静态库C语言动态数组的使用实现代码C语言中十六进制转十进制两种实现方法C语言行优先和列优先的问题深入分析C语言 strftime 格式化显示日期时间的实现C语言辗转相除法求2个数的最小公约数C语言从txt文件中逐行读入数据存到数组中的实现方法C语言 全局变量和局部变量详解及实例



C语言 圣诞树

需要 登录 后方可回复, 如果你还没有账号请 注册新账号