随笔?刘萌萌??呵呵

这是刘萌萌

 1 #include <stdio.h>
 2 #include <cstdlib>
 3 int main()
 4 {
 5     do
 6     {
 7         int h=0;
 8         printf("请输入行数(输入0结束):");
 9         scanf("%d",&h);
10         if(h==0)
11             break;
12         else if(h<0)
13         {
14             printf("%d输入有误,请输入正整数\n",h);
15         }
16         else 
17         {
18             if(h%2==0)
19             {
20                 //偶数行
21                 int c_h=h/2;//转折行
22                 int i=1;//当前行
23                 int j=0;//行内循环计数
24                 for(i;i<=h;i++)//总行数循环
25                 {
26                     if(i<=c_h)//上半部分
27                     {
28                         //  空格数+*数=c_h+i-1
29                         //      空格数=c_h-i
30                         //         *数=2*i-1
31                         j=1;
32                         for(j;j<=c_h+i-1;j++)//空格加*
33                         {
34                             if(j<=c_h-i)//画空格
35                                 printf(" ");
36                             else
37                                 printf("+");
38                         }
39                         printf("\n");
40                     }else
41                     {
42                         //下半部分  i行跟c_h-(i-c_h)+1行情况一样的  2c_h-i+1
43                         int hh=2*c_h-i+1;//临时行
44                         j=1;
45                         for(j;j<=c_h+hh-1;j++)
46                         {
47                             if(j<=c_h-hh)
48                                 printf(" ");
49                             else
50                                 printf("+");
51                         }
52                         printf("\n");
53                     }
54                 }
55             }else
56             {
57                 //奇数行
58                 int c_h=(h+1)/2;
59                 int i=1;//当前行
60                 int j=0;//行内循环计数
61                 for(i;i<=h;i++)
62                 {
63                     if(i<=c_h)//上半部分
64                     {
65                         //  空格数+*数=c_h+i-1
66                         //      空格数=c_h-i
67                         //         *数=2*i-1
68                         j=1;
69                         for(j;j<=c_h+i-1;j++)
70                         {
71                             if(j<=c_h-i)
72                                 printf(" ");
73                             else
74                                 printf("+");
75                         }
76                         printf("\n");
77                     }else
78                     {
79                         //下半部分  i行跟c_h-(i-c_h)行情况一样的  2c_h-i
80                         int hh=2*c_h-i;//临时行
81                         j=1;
82                         for(j;j<=c_h+hh-1;j++)
83                         {
84                             if(j<=c_h-hh)
85                                 printf(" ");
86                             else
87                                 printf("+");
88                         }
89                         printf("\n");
90                     }
91                 }//行循环结束
92             }//奇数结束
93             printf("------------------\n");
94         }//正整数结束
95 
96     }while(true);
97     system("pause");
98     return 0;
99 }

 

posted @ 2013-01-26 04:43  我不是草草  阅读(213)  评论(0)    收藏  举报