1
  2 3
 4 5 6
7 8 9 0

看了到题,要求打印上面的图形。想了想就把题改了改:给定一个数(千位内),打印数字三角形直至给定的那个数。

代码如下:

 1 #include<stdio.h>
 2 
 3 #define NUM 99
 4 
 5 int main(void)
 6 {
 7     int i, j, k, x = 0;
 8     int n = 1,temp = 0, count = 1;
 9     while ( (temp = NUM+1 - count) > 0)
10     {
11         ++n;
12         count +=n;
13     }
14     //--n;    //控制是否通过显示星型来补全NUM
15     
16     for (i = 1; i <= n; ++i)
17     {
18         for (j = n-i; j > 0; --j)
19         {
20             printf("   ");
21         }
22         for (k = 1; k <= i; ++k)
23         {
24             if (++x <= NUM)
25             {
26                 printf("%03d   ", x);                
27             }
28             else printf("***   ");
29         }
30         printf("\n");
31     }
32     
33     return 0;
34 }


结果:

                                       001   
                                    002   003   
                                 004   005   006   
                              007   008   009   010   
                           011   012   013   014   015   
                        016   017   018   019   020   021   
                     022   023   024   025   026   027   028   
                  029   030   031   032   033   034   035   036   
               037   038   039   040   041   042   043   044   045   
            046   047   048   049   050   051   052   053   054   055   
         056   057   058   059   060   061   062   063   064   065   066   
      067   068   069   070   071   072   073   074   075   076   077   078   
   079   080   081   082   083   084   085   086   087   088   089   090   091   
092   093   094   095   096   097   098   099   ***   ***   ***   ***   ***   ***   
posted on 2012-11-01 14:20  youngsing  阅读(219)  评论(0编辑  收藏  举报