再回首《C語言編程基礎》,其中不少當年老師出的題,做完后稍微做了下修改,可以輸入任意行數來打印聖誕樹,行數越大,樹越大,當然顯示器也要越大,不然就折行了。
純粹練手跟加強記憶的東西,做個記錄。剛學C的童鞋們可以看看,跟我一樣菜的盆友也可以看看,高手就路過吧。
來張圖:

源碼:
1 #include<stdio.h> 2 3 void main() 4 { 5 int rows,starNo,spaceNo; 6 printf("Enter Rows:\n"); 7 scanf("%d",&rows); 8 9 for(int i=1;i<=rows;i++) 10 { 11 starNo=i*2-1; 12 spaceNo=i+rows-starNo; 13 for(int j=0;j<spaceNo;j++) 14 { 15 printf("%c",' '); 16 } 17 for(int k=0;k<starNo;k++) 18 { 19 printf("%c",'*'); 20 } 21 printf("\n"); 22 } 23 24 for(int l=0;l<3;l++) 25 { 26 for(int m=0;m<(rows*2+1)/2;m++) 27 { 28 printf("%c",' '); 29 } 30 printf("%c\n",'*'); 31 } 32 }
另外的版本,可以輸入多次,goto,你懂的:
1 #include<stdio.h> 2 3 void main() 4 { 5 int rows,starNo,spaceNo; 6 printf("Enter Rows:\n"); 7 8 rep: 9 scanf("%d",&rows); 10 if(rows==0) 11 return; 12 13 for(int i=1;i<=rows;i++) 14 { 15 starNo=i*2-1; 16 spaceNo=i+rows-starNo; 17 for(int j=0;j<spaceNo;j++) 18 { 19 printf("%c",' '); 20 } 21 for(int k=0;k<starNo;k++) 22 { 23 printf("%c",'*'); 24 } 25 printf("\n"); 26 } 27 28 for(int l=0;l<3;l++) 29 { 30 for(int m=0;m<(rows*2+1)/2;m++) 31 { 32 printf("%c",' '); 33 } 34 printf("%c\n",'*'); 35 } 36 37 goto rep; 38 }
來個編譯后的exe:STARS.exe,STARS.EXE(修正版)
開發環境:Turbo C++ 3.0,學習嘛,用點輕巧的就好了,VC++目前還沒用過,誰讓咱一直都是寫C++++呢,哈哈。
