2012-02-11 77 views
0

我应该写入应该打印以下列方式三角形的程序的“三角形”:打印星号

如果行数是2:

 * 
     *** 

如果数行是3:

 * 
    * * 
    ***** 

不过,我做版画的恒星最后一行正确的量下面的代码,但我不敢肯定我会如何打印空间和换行符。我打印的底层代码星星是:

void tri_func(num) 
{ 

    int row; int c=1; 
    int j; 

    for (row = 1 ; row <= num ; row++) 
    { 
     for (j=1; j < row-2; j++) printf(" "); 
     for (c = 1 ; c <= (2*row)- 1-j ; c++) 
     { 
     printf("*"); 
     } 

     printf("\n"); 
    } 
} 

回答

1

好吧,如果你有n行,第一行应包含n-1空间和*。所述第i线(1个<我< N)应包含n-i空格,一个*2i-3空间和另一个*,最后行应包含2n-1*秒。你可以很容易地使用循环。要打印空格,请使用printf(" ");,并记得在每行的末尾打印一个\n

+0

我认为如果对任何'i'(0≤i 2012-02-11 23:38:58

+0

也许吧,但是由于第一行有一个'*',最后一行有'2n-1',而其他每行都有2行,所以我认为让它们成为一个特殊情况是有意义的。 – asaelr 2012-02-11 23:41:31

+0

啊,是的,我只是想着领先空间的数量。 – 2012-02-11 23:50:46