2016-11-10 143 views
-1

輸出倒掛星三角

  ***** 
      *** 
      * 

代碼(我嘗試)

for (int lines = 3; lines >= 1; lines--) 
    { 
     if (lines == 3) 
      System.out.printf("%1s", " "); 
     else if (lines == 2) 
      System.out.printf("%2s", " "); 
     else if (lines == 1) 
      System.out.printf("%3s", " "); 

     for (int stars = 1; stars <= 2* lines - 1; stars++); 
     { 
      System.out.print('*'); 
     } 

     System.out.println(); 
    } 

繪製和我得到這個:

 * 
     * 
     * 

我無法找到問題,代碼應該運行和工作

+0

你需要顯示你已經嘗試過,所以我們可以幫助你。 – HaroldSer

+0

所以你甚至不會去嘗試做自己的功課? – John3136

回答

1
 for (int lines = 3; lines >= 1; lines--) 
    { 
     if (lines == 3) 
      System.out.printf("%1s", " "); 
     else if (lines == 2) 
      System.out.printf("%2s", " "); 
     else if (lines == 1) 
      System.out.printf("%3s", " "); 

     for (int stars = 1; stars <= 2* lines - 1; stars++) 
      System.out.print('*'); 

     System.out.println(); 
     } 

我有一個「;」在我的第二個回合在原來的環境中導致它只能運行一次而不是一個循環!

+0

請關閉大寫鎖定 –

0

嘗試一下東西E本,也許是:

for(int lines = 3; lines >= 1; lines--) 
{ 
if (lines == 1)  
    System.out.printf("%3s", " ");` 
else if (lines == 2) 
    System.out.printf("%2s", " "); 
else if (lines == 3) 
    System.out.printf("%1s", " "); 

for(int stars = 1; stars <= 2 * lines - 1; stars++) 
    System.out.print ('*'); 

System.out.println(); 
} 

你是在正確的道路上,但基本上,你只需要扭轉第一「for」循環(使其倒計時代替了)這一部分做正確]調整腳本以執行3行而不是4 [也正確完成],並保留原來的第二個「for」循環,因爲它已經考慮了有多少行//你從前面的代碼所在的行。我希望這是有道理的,並解決了你的問題。 :P

+0

我仍然在向下的對角線上獲得3「*」 – zeglr

+0

:o它適用於我,您確定您正確地複製了它嗎? :P –

+0

是的,我不確定是什麼問題:/ – zeglr

0

你可以試試這個;雖然代碼不工整,它的工作原理,以及它是基於你的原始代碼:

for(int stars =5,lines = 1,j; lines <= 4; lines++) 
      { 
       if (lines == 1)  
        System.out.printf("%1s", " "); 
       else if (lines == 2) 
        System.out.printf("%2s", " "); 
       else if (lines == 3) 
        System.out.printf("%3s", " "); 
       else if (lines == 4) 
        System.out.printf("%4s", " "); 
       j=stars; 
       for( ; j > 0; j--) 
        System.out.print ('*'); 
       stars-=2; 
       System.out.println(); 
      } 
0

我認爲這是你家的東西的工作,你可以瞭解在這個環節上,這些星星圖案。 Star Pattern Example

無論如何,對於你的明星程序案例,我認爲你正在尋找像下面的解決方案。

int i, j, k; 
for (i = 4; i >= 1; i--) { 
    for (j = 5; j > i; j--) { 
     System.out.print(" "); 
    } 
    for (k = 1; k < (i * 2); k++) { 
     System.out.print("*"); 
    } 
    System.out.println(); 
} 

希望它有幫助。