再回首《C语言编程基础》,其中不少当年老师出的题,做完后稍微做了下修改,可以输入任意行数来打印圣诞树,行数越大,树越大,当然显示器也要越大,不然就折行了。
纯粹练手跟加强记忆的东西,做个记录。刚学C的童鞋们可以看看,跟我一样菜的盆友也可以看看,高手就路过吧。
来张图:
源码:
1 #include<stdio.h> 2 3 void main() 4 { 5 int rows,starNo,spaceNo; 6 printf("Enter Rows: "); 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(" "); 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 ",'*'); 31 } 32 }
另外的版本,可以输入多次,goto,你懂的:
1 #include<stdio.h> 2 3 void main() 4 { 5 int rows,starNo,spaceNo; 6 printf("Enter Rows: "); 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(" "); 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 ",'*'); 35 } 36 37 goto rep; 38 }
来个编译后的exe:STARS.exe,STARS.EXE(修正版)
开发环境:Turbo C++ 3.0,学习嘛,用点轻巧的就好了,VC++目前还没用过,谁让咱一直都是写C++++呢,哈哈。