2016-11-04 1 views
-1

So versuche ich, einen Code zu machen, wo die Ausgabe so aussehen:Java Triangles Mit Sternen

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

Durch Eingabe des Wertes 4. Also im Grunde, 7 Sterne und keine Leerzeichen für die erste Linie, 5 Sterne und 1 Platz vor der zweiten Zeile und so weiter.

Ich dachte, dass dies richtig war, aber es gibt mir nicht die Ausgabe, die ich will?

public static void Stars(int a) 
    { 
     String newStars = ""; 
     String stars = "", spaces = ""; 
     for (int i = 1; i <= a; i++) 
     { 
      for (int j = 2*a - 1; j > 0; j--) 
      { 
       stars += "*"; 
      } 
      for (int k = 0; k < a; k++) 
      { 
       spaces += " "; 
      } 
      newStars = spaces + stars; 
      System.out.println(newStars); 
     } 
    } 

Es ist nicht der richtige Ausgabe geben, aber ich weiß nicht, was mit meinem Code falsch ...

+0

Sie Sind fragen, ob es die richtige Ausgabe gibt? Weißt du es nicht? –

+0

Nein, ich habe gefragt, was mit meinem Code falsch ist – user7112926

+0

1) Sie sollten "Sterne" und "Leerzeichen" * innerhalb der Schleife (am Anfang) initialisieren. --- 2) Ihre inneren Schleifen sollten wahrscheinlich den Wert von "i" verwenden, da sie abhängig von der zu erzeugenden Zeile eine unterschiedliche Anzahl von Zeichen benötigen. – Andreas

Antwort

0

spaces und stars muss innerhalb der äußeren Schleife initialisiert werden.

+0

Nur ein Teil der Antwort. – Andreas

0

Hier einige Code, den Sie gehen zu bekommen:

public static void Stars(int a) { 
    int starsc = 0, spacesc = 0; 
    for (int i = (2 * a - 1); i > 0; i = i - 2) { // i - 2 decreases stars by 2 
     starsc = i; 
     if (i != (2 * a - 1)) { // if this is the first line, no spaces! 
      spacesc = (2 * a - 1) - i; 
     } 
     System.out.println("stars count: " + starsc + " spaces count: " + spacesc); 
    } 
} 

Wir zählen die Anzahl der Sterne und Räume, die in jeder Zeile gedruckt werden soll, gehen Sie vor und Format, das ...

Verwandte Themen