2012-02-11 112 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