2023-12-22 00:13 /
#include<stdio.h>
#include<Windows.h>
#include<time.h>
#include<stdlib.h>

void color(int x);

int main(void)
{
        {
                color(14);
            printf(
            "         +\n"
            "        +++\n"
            );
        }
    char tree[500] = "        +-+\n       +*=*+\n      +**-**+\n       +*-*+\n      +**=**+\n     +-**-**-+\n    +-***=***-+\n   +-****-****-+\n  +-**-**=*****-+\n +-******_***-**-+\n";
        for(int i = 0 ; i<= 199 ; i++)
        {
                color(10);
                if( tree[ i] == '+' )
                {
                        color(15);
                }
                else if( i == 47 || i == 76 || i == 119 )
                {
                        color(12);
                }
                else if( i == 62 || i == 88 || i == 128 )
                {
                        color(3);
                }
                else
                {
                        int key = rand()%2;
                        if( key == 1 )
                        {
                                color(10);
                        }
                        else
                        {
                                color(11);
                        }
                }
                printf("%c",tree[ i]);
        }
    {
            color(6);
            printf(
                   "        |-|\n"
            "        |-|\n"
            "        |-|\n"
            "        |-|\n"
            "        |-|\n"
            );
        }
        {
                color(15);
            printf(
            "       ﹌ ﹌"
                );
        }
        color(15);
    return 0;
}

void color(int x)
{
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
#1 - 2023-12-22 00:20
(玫瑰幻色终是梦, 石径悠长方为真)

这段代码是一个用C语言编写的程序,主要功能是在控制台(命令提示符)上绘制一个彩色的圣诞树。下面是代码的主要部分和它们的功能:

1. **头文件引入**:
   - `#include <stdio.h>`: 标准输入输出头文件,用于printf等函数。
   - `#include <Windows.h>`: Windows特有的头文件,用于Windows API函数,这里主要用于设置控制台文本颜色。
   - `#include <time.h>`: 时间函数头文件,可能用于随机数生成。
   - `#include <stdlib.h>`: 标准库头文件,包含各种常用函数,如rand。

2. **color函数**:
   - 这个函数使用`SetConsoleTextAttribute`函数改变控制台文本的颜色。它接受一个整数参数`x`,这个参数指定了颜色。

3. **main函数**:
   - 首先使用`color(14)`设置颜色,然后打印圣诞树的顶部。
   - 接着定义一个字符数组`tree`,包含圣诞树的主体部分。
   - 在一个循环中,根据`tree`数组中的字符和循环的索引,使用`color`函数设置不同的颜色来打印圣诞树的不同部分。例如,使用红色(12)和蓝色(3)来表示装饰。
   - 最后打印圣诞树的底部和一个装饰性的底线。

4. **问题**:
   - 在循环中,`if( tree == '+' )`这行代码是有问题的。这里应该是`if( tree[i] == '+' )`,否则这个比较会始终为假,因为它在比较指针而不是字符。
   - 循环中的`printf("%c",tree);`也是有问题的,应该是`printf("%c",tree[i]);`,以打印数组中的单个字符。

总体来说,这个程序是一个有趣的示例,展示了如何在控制台上使用颜色和字符来创建图形。但是,它包含一些代码错误,需要修正才能正常运行。
#1-1 - 2023-12-22 00:25
[已封禁]
不对不对,好奇怪啊,我看了一眼我写的源代码,这里没有错,难不成复制的时候给我吞掉了?
#1-2 - 2023-12-22 00:26
[已封禁]
可能是BGM用的某些函数和功能冲突了吧,实际上缺失的地方还要补一下,,,草了
#1-3 - 2023-12-22 00:31
[已封禁]
我看了一下,不知道为什么,编辑界面。这个东西还是在的。。。中间加了个空格就能正常显示了
#1-4 - 2023-12-22 00:38
klion
屏晶小姐 说: 不对不对,好奇怪啊,我看了一眼我写的源代码,这里没有错,难不成复制的时候给我吞掉了?
是你写的还是copy的,怎么gpt一眼能看出来是圣诞树啊,也没圣诞的提示信息啊
#1-5 - 2023-12-22 00:45
[已封禁]
klion 说: 是你写的还是copy的,怎么gpt一眼能看出来是圣诞树啊,也没圣诞的提示信息啊
自己写的,可能是因为字符串展开直接就是圣诞树了吧
#1-6 - 2023-12-22 00:46
[已封禁]
klion 说: 是你写的还是copy的,怎么gpt一眼能看出来是圣诞树啊,也没圣诞的提示信息啊
哦哦哦,我知道了,数组变量名是tree,可能因为这个吧
#1-7 - 2023-12-22 01:03
klion
屏晶小姐 说: 哦哦哦,我知道了,数组变量名是tree,可能因为这个吧
还是觉得有点吃惊,这么精准的说出圣诞树
#2 - 2023-12-22 00:24
woc,不对啊,我记得我写的是if tree==+

你看图里出来的效果,所有加号都被换成白色了