如何用C語言實現圣誕樹

蝸牛 互聯網技術資訊 2021-12-22 1870 0

這篇文章主要介紹“如何用C語言實現圣誕樹”,在日常操作中,相信很多人在如何用C語言實現圣誕樹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何用C語言實現圣誕樹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

初學者版:

#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);
				??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等哦)后面還可加一句你想說的話,與前面字符用空格隔開,字符間不要加空格哦>_<:");
????	scanf("%s",k);
		gets(w);?
????	set_Christmastree(k);
		color(3);?
????	printf("\nI?want?to?say:\n");
????	puts(w);
	????printf("Made?by?zhanduanwanfeng.");
	}
	return?0;
}

這是效果圖:

如何用C語言實現圣誕樹  c語言 第1張

?如何用C語言實現圣誕樹  c語言 第2張

初學者版2

比前一個多了雪花,復雜了些。

#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("?");
????????????}
????????????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){
				??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);
	?????printf("*?");
	?????//color(6);
	????}*/
????}
????printf("\n");
????for(s=1;s<=34;s++){
???????if(s==n+11){
????????printf("V");
????????continue;
???????}
???????else?
???????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等哦)后面還可加一句你想說的話,與前面字符用空格隔開,字符間不要加空格哦>_<:");
????	scanf("%s",k);
		gets(w);?
????	set_Christmastree(k);
		color(3);?
????	printf("\nI?want?to?say:\n");
????	puts(w);
	????printf("Made?by?zhanduanwanfeng.");
	}
	return?0;
}

?這是效果圖:

如何用C語言實現圣誕樹  c語言 第3張

?如何用C語言實現圣誕樹  c語言 第4張

以下是進階版,更炫:

#include?<windows.h>
#include?<math.h>
#include?<stdio.h>
#include?<stdlib.h>
#define?PI?3.14159265359
#define?T?px?+?scale?*?r?*?cosf(theta),?py?+?scale?*?r?*?sin(theta)
float?sx,?sy;
float?sdCircle(float?px,?float?py,?float?r)?{
????float?dx?=?px?-?sx,?dy?=?py?-?sy;
????return?sqrtf(dx?*?dx?+?dy?*?dy)?-?r;
}
float?opUnion(float?d1,?float?d2)?{
????return?d1?<?d2???d1?:?d2;
}
float?f(float?px,?float?py,?float?theta,?float?scale,?int?n)?{
????float?d?=?0.0f;
????for?(float?r?=?0.0f;?r?<?0.8f;?r?+=?0.02f)
????????d?=?opUnion(d,?sdCircle(T,?0.05f?*?scale?*?(0.95f?-?r)));
????if?(n?>?0)
????????for?(int?t?=?-1;?t?<=?1;?t?+=?2)?{
????????????float?tt?=?theta?+?t?*?1.8f;
????????????float?ss?=?scale?*?0.9f;
????????????for?(float?r?=?0.2f;?r?<?0.8f;?r?+=?0.1f)?{
????????????????d?=?opUnion(d,?f(T,?tt,?ss?*?0.5f,?n?-?1));
????????????????ss?*=?0.8f;
????????????}
????????}
????return?d;
}
int?ribbon()?{
????float?x?=?(fmodf(sy,?0.1f)?/?0.1f?-?0.5f)?*?0.5f;
????return?sx?>=?x?-?0.05f?&&?sx?<=?x?+?0.05f;
}
int?main(int?argc,?char*?argv[])?{
????int?n?=?argc?>?1???atoi(argv[1])?:?3;
????float?zoom?=?argc?>?2???atof(argv[2])?:?1.0f;
????for?(sy?=?0.8f;?sy?>?0.0f;?sy?-=?0.02f?/?zoom,?putchar('\n'))
????????for?(sx?=?-0.35f;?sx?<?0.35f;?sx?+=?0.01f?/?zoom)?{
????????????if?(f(0,?0,?PI?*?0.5f,?1.0f,?n)?<?0.0f)?{
????????????????if?(sy?<?0.1f)?{
????????????????????putchar('.');
????????????????}?else?{
????????????????????if?(ribbon())?{
????????????????????????putchar('=');
????????????????????}?else?{
????????????????????????putchar("............................#j&o"[rand()?%?32]);
????????????????????}
????????????????}
????????????}?else?{
????????????????putchar('?');
????????????}
????????}
????Sleep(1000);
????printf("\n\n\n");
????for?(size_t?i?=?0;?i?<?40;?i++)?{
????????putchar('?');
????}
????//_sleep(5000);
????printf("Merry?Christmas,?baby~!\n");
????Sleep(500);
????for?(size_t?i?=?0;?i?<?40;?i++)?{
????????putchar('?');
????}
????printf("Never?say?die.\n");
????Sleep(500);
????for?(size_t?i?=?0;?i?<?40;?i++)?{
????????putchar('?');
????}
????printf("2016/12/24,?最愛你的UP主\n");
????getchar();
}

到此,關于“如何用C語言實現圣誕樹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注蝸牛博客網站,小編會繼續努力為大家帶來更多實用的文章!

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

評論

日本韩欧美一级A片在线观看