2013-10-04 177 views
-5

我需要創建一個三角形這樣創建一個三角形

* 
** 
*** 
**** 
***** 

我已經做到了這一點。但我的三角形看起來不是這樣的:

#include <stdio.h> 

int main() 
{ 
    int k, l; 

    for(k=1; k<=5; k++) 
    { 
     for(l=k; l<=5; l++) 
      printf(" "); 

     for(l=0; l<=k-1; l++) printf("*"); 
     printf("\n"); 
    } 
    return 0; 
} 

你會告訴我我的錯誤在哪裏嗎?

+6

許多重複,例如[繪製三角形使用星號](http://stackoverflow.com/questions/12711553/drawing-triangle-using-asterisks)和[打印星號「三角形」](http://stackoverflow.com/questions/9244912/打印一個三角形的星號) - 這似乎是每年都會出現的常見作業問題。 –

+2

@PaulR在新學期開始的時候,每年約10次,更準確一些。 –

+4

他仍然在代碼中表現出自己的努力,並要求出現錯誤。通過投票讚賞那些只是要求別人去做他們的任務的人。 – fayyazkl

回答

3

你並不需要3個循環 - 這是不必要的:

int k, l; 
for(k=1; k<=5; k++) // outer loop 
{ 
    for(l=0; l<k; l++) // inner loop 
     printf("*"); 
    printf("\n"); 

} 

的想法是在內環簡單守印星只要l小於k。所以隨着行數的增加(由k跟蹤),恆星的數量也是如此。您的固定代碼:

for(k=1; k<=5; k++) 
    { 
     for(l=0; l<=k-1; l++) printf("*"); 
     printf("\n"); 
    } 
+0

你可以抽象出內部循環:void printn(int n,char * s){while(0

+1

+1解釋代碼...我會刪除單詞simple,因爲這是一個主觀的,如果這些問題對每個人都很簡單,那麼他們會不要問 –

0

只需刪除循環打印空間。其餘的代碼似乎很好