在C语言中,可以使用Windows的控制台函数来改变圣诞树的颜色。以下是一个简单的示例代码,展示了如何实现这一功能:
```c
include include include include define TREE_HEIGHT 15 define TREE_WIDTH 15 void setColor(int color) { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, color); } void getCoord(int y, int x) { COORD pos = { x, y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void hideCursor() { CONSOLE_CURSOR_INFO cursor = { 1, 0 }; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor); } void layer(int x, int y, int num, int col) { setColor(col); getCoord(x, y); int idx = rand() % TREE_HEIGHT; printf("%c", ' '); for (int k = 1; k <= num; ++k) { idx = rand() % TREE_HEIGHT; printf("%c", ' '); } printf("%c", '\n'); } int main() { srand(time(NULL)); hideCursor(); for (int i = 0; i < TREE_HEIGHT; ++i) { for (int j = 0; j < TREE_WIDTH; ++j) { if (i == 0 || i == TREE_HEIGHT - 1 || j == 0 || j == TREE_WIDTH - 1) { layer(i, j, 2, 15); // 边框使用白色 } else { layer(i, j, 2, rand() % 15 + 1); // 内部使用随机颜色 } } } showCursor(); return 0; } ``` 代码解释: `include `include `include `include `define TREE_HEIGHT 15`:定义圣诞树的高度。 `define TREE_WIDTH 15`:定义圣诞树的宽度。 `void setColor(int color)`:设置控制台文本颜色。 `void getCoord(int y, int x)`:设置光标位置。 `void hideCursor()`:隐藏光标。 `void layer(int x, int y, int num, int col)`:绘制圣诞树的每一层。 `srand(time(NULL))`:设置随机数种子。 `hideCursor()`:隐藏光标以便绘制。 使用两个嵌套的`for`循环遍历圣诞树的每个位置,根据位置绘制边框或内部颜色。 `showCursor()`:显示光标。 运行结果: 运行上述代码后,控制台将显示一个彩色的圣诞树。每一层的边框使用白色,内部使用随机颜色。你可以根据需要调整颜色值和圣诞树的大小。头文件包含
宏定义
函数定义
主函数