C语言 打印圣诞树

再回首《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.exeSTARS.EXE(修正版)

开发环境:Turbo C++ 3.0,学习嘛,用点轻巧的就好了,VC++目前还没用过,谁让咱一直都是写C++++呢,哈哈。

 

posted @ 2013-09-25 09:07  Lison Liou  Views(7683)  Comments(30Edit  收藏  举报