2016-10-21 3 views
-3

Ich versuche, System.out.print() ein Diamant aus * s. Bis jetzt habe ich gut 5 Stunden damit verbracht, herauszufinden, wie man das untere Dreieck des Diamanten rückwärts drucken kann. Ich kann mir Sorgen über den Abstand machen, um den Diamanten später zu vervollständigen. (Ich habe es größtenteils funktioniert).Drucken von Diamanten aus *

Wenn jemand mir erklären könnte, was ich falsch mache und wie der richtige Weg funktioniert, würde ich es sehr schätzen.

private static void diamond() 
    { 
     int numLines = 0; 
     System.out.println("How many lines would you like in the Diamond?"); 
     numLines = scan.nextInt(); 

     if (numLines/2 == 0) //if number is even, make odd. 
     { 
      numLines++; 
     } 
     for(int i = 0; i <= numLines ; i++) // Controls #Lines 
     { 
      if(i <= numLines/2) 
      { 
       for(int j = 0; j < i * 2 - 1; j++) // Controls #Stars small upright triangle 
       { 
        System.out.print("*"); 
       } 
      } 
      else 
      { 
       for(int k = numLines; k > i/2; k--) // Controls # of spaces 
       { 
        System.out.print("*"); 
       } 
       /*for(int j = numLines/2 - i, l = i; l > j; j++) // Controls #Stars small upright triangle 
       { 
        String stars = "*"; 
        System.out.print(stars); 
       }*/ 
      } 
      System.out.println(""); 
     } 
    } 

`

+0

Wo ist der Code? – Paulo

+0

DurzoBlunt für gerade Zahl verwenden% anstelle von/(((4/2 = 2)! = 0), ((4% 2) = 0)) posten Sie bitte Ihr erwartetes Ergebnis für ein Beispiel :) – RobertS

+0

Poste deinen Code so wir sehen. –

Antwort

0

Was ist mit Ihrem Versuch passiert ist, dass Sie eine Schleife durch die Hälfte (der Linien) Ihren Diamanten [die Anzahl der Zeilen in der zweiten/ersten Halb] mal.

Sie wollen würde eine if-Anweisung jede Schleife tun, nicht ein, wenn und eine in jeder Schleife

0

Wahrscheinlich wollen Sie diese

einfach es Eingang für Benutzer anpassen Werte

public static void main(String[] args) { 
     System.out.print("Reverse diamond: \n"); 
     for (int i = 1; i < 10; i += 2) { 
      for (int j = 0; j < 9 - i/2; j++) 
      System.out.print(" "); 

      for (int j = 0; j < i; j++) 
      System.out.print("*"); 

      System.out.print("\n"); 
     } 
     System.out.print("\n\nDiamond from starts: \n"); 
     for (int i = 7; i > 0; i -= 2) { 
      for (int j = 0; j < 9 - i/2; j++) 
      System.out.print(" "); 

      for (int j = 0; j < i; j++) 
      System.out.print("*"); 

      System.out.print("\n"); 
     } 
} 

Ausgang:

enter image description here

Verwandte Themen