⽤C语⾔实现圣诞树(简易版+进阶版)
⽬录
前⾔
初学者版:
初学者版2
以下是进阶版,更炫:
总结
前⾔
圣诞节快到了,这是我到CSDN度过的第⼀个圣诞节,也是我学习计算机的第⼀个圣诞节,为了让它更有意义,我呕⼼沥⾎,⾃⼰打了两版初学者版,再在⽹上了⼀版进阶版,都⼗分精美,废话少说,代码奉上:
初学者版:
1
2
3
4
5
6
7
8
9
10
11
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42#include<stdio.h>
#include<windows.h>
#include<string.h>
void color(int x)
{
if(x>=0 && x<=15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); }
void set_Christmastree(char*p){
int i,j,n=5,s;
color(2);
printf("\n");
for(i=1;i<=n;i++){
if(i==1){
for(j=1;j<=i;j++){
for(s=1;s<=n+11-j;s++){
printf(" ");
}
for(s=1;s<=2*j-1;s++){
printf("*");
}
printf("\n");
}
}
else{
for(j=i;j<=i+1;j++){
for(s=1;s<=n+11-j;s++)
{
printf(" ");
}
for(s=1;s<=2*j-1;s++)
{
if(s==n-3){
color(11);
printf("%c",p[0]);
color(2);
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 continue;
}
if(s==n-1){
color(5);
printf("%c",p[1]);
color(2);
continue;
}
if(s==n+1){
color(4);
printf("%c",p[2]);
color(2);
continue;
}
if(s==n+3){
color(1);
printf("%c",p[3]);
color(2);
continue;
}
if(s==n+5){
color(12);
printf("%c",p[4]);
color(2);
continue;
}
printf("*");
}
printf("\n");
}
}
}
color(6);
for(s=1;s<=n+11;s++)
{
if(s==n+9)
{
printf("|||||\n");
color(15);
printf(" %c%c%c%c%c",p[5],p[5],p[5],p[5],p[5]);
continue;
}
printf(" ");
}
printf("\n");
for(s=1;s<=36;s++)
{
if(s==n+11)
{
printf("V");
continue;
}
printf("=");
}
}
int main(){
int t=0;
color(11);
printf("⾸先祝这个电脑前的⼩可爱圣诞快乐(~ ̄▽ ̄)~");printf("\n");
printf("接下来有⼏个选项需要您的选择,你需要我的作者给您画的圣诞树还是⾃⼰做⼀个呢?");
printf("\n");
printf("看作者的选0,如果想⾃⼰做呢选1,祝您开⼼o(*^@^*)o");
printf("您的选择是:");
scanf("%d",&t);
if(t==0){
char l[6]="HAPPYU",m[100]="Merry Christmas.";
set_Christmastree(l);
color(3);
printf("\nI want to say:\n");
puts(m);
printf("Made by zhanduanwanfeng.");
}
if(t==1){
char k[6],w[100]="Merry Christmas.";
printf("请选择您要隐藏的字符,只有六个字符哦,可以有特殊含义(IMISSU,ILOVEU等哦)后⾯还可加⼀句你想说的话,与前⾯字符⽤空格隔开,字符间不要加空格哦>_<:");
105106107108109110111112113
114
115
116
117
118
119
120
121
122
scanf("%s",k); gets(w);
set_Christmastree(k); color(3); printf("\nI want to say:\n"); puts(w);
printf("Made by zhanduanwanfeng.");
} return 0;}这是效果图:
初学者版2
⽐前⼀个多了雪花,复杂了些。1
2
3
4
5
6
7
8
9
10
11
12
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35#include<stdio.h>
#include<windows.h>
#include<string.h>
void color(int x)
{
if(x>=0 && x<=15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); }
void set_Christmastree(char*p){ //打印圣诞树和雪景的函数
int i,j,n=5,s,y=0;
color(2);
printf("\n");
for(i=1;i<=n;i++){
y++;
if(i==1){ //第⼀层是⼀个*,之后都是梯形
for(j=1;j<=i;j++){
for(s=1;s<=36;s++){
if((s<=n+11-j)||(s>=17)){
if(s%(i+3)==i){ //雪景
color(15);
putchar('*');
color(2);
}
else
printf(" ");
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 }
else if(s==n+11){
putchar('*');
}
}
printf("\n");
}
}
else{
for(j=i;j<=i+1;j++){ //打印梯形
for(s=1;s<=36;s++)
{
if((s<=n+11-j)||(s>=n+11+j)){
if(s%(i+3)==i){ //雪景
color(15);
putchar('*');
color(2);
}
else
printf(" ");
}
else{
if(s==n+2+y){ //这⼏个if函数都是⽤来打印圣诞树上的变⾊字符 color(11);
printf("%c",p[0]);
color(2);
continue;
}
else if(s==n+4+y){
color(5);
printf("%c",p[1]);
color(2);
continue;
}
else if(s==n+6+y){
color(4);
printf("%c",p[2]);
color(2);
continue;
}
else if(s==n+8+y){hbuilder圣诞树代码
color(1);
printf("%c",p[3]);
color(2);
continue;
}
else if(s==n+10+y){
color(12);
printf("%c",p[4]);
color(2);
continue;
}
else
printf("*");
}
}
printf("\n");
}
}
}
color(6);
for(s=1;s<=34;s++) //树桩
{
if(s==n+9){
color(15);
printf("* * * * *");
color(6);
printf("|||||");
color(15);
printf(" * * * * * \n");
printf("* * * * *%c%c%c%c%c * * * * * ",p[5],p[5],p[5],p[5],p[5]); continue;
}
/*else{
color(15);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论