Logischer Fehler mit Addition von Arrays

Guten Tag,
und zwar will ich kurz anschneiden was ich hier machen muss, bzw. was gefordert ist:

Und zwar, soll ein Tennisball von einer Höhe von 20 m fallengelassen werden, erreicht nach dem Auftrumpfen jeweils die 85% Höhe vor dem Auftrumpfen.
Dazu soll ich die Gesamtstrecke nach jedem Auftrumpfen anzeigen lassen.
Ich habe das bis jetzt so gelöst:

{
  public static void main(String[] args)
  {
    
    
    double hoehe[] = new double[32];
    double gStrecke[] = new double[32];
    hoehe[0] = 20;
    
    
    String xAuftrumpfer, xHoehe, xGesamtstrecke = "";
    
    
    System.out.println(" |-------------------------------------------------------------------|");
    System.out.println(" |     Auftrumpfer     |         Höhe        |      Gesamtstrecke    |");
    System.out.println(" |---------------------|---------------------|-----------------------|");
    
    for (int i = 0;i<=30 ;i++ ) 
    {
      xAuftrumpfer = String.valueOf(i);
      
      hoehe[i+1] = hoehe** * 0.85;  
      
      xHoehe = String.valueOf(round(hoehe**, 5));
      
      if (i != 0) 
      {
        gStrecke** = hoehe[i-1] + hoehe**; 
      } 
      else
      {
        gStrecke** = hoehe[0];
      }     
      
      xGesamtstrecke = String.valueOf(round(gStrecke**, 5)); 
      
      System.out.println(" | " + xAuftrumpfer + "                      " + xHoehe + "       " + "             " + xGesamtstrecke);
      
    }    
    
    
  } // end of for
  
  
  
  
  
  static double round(double wert, int stellen) {
    return  Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen);
  }
}```

Jetzt zu meinem Problem:

Das mit der Höhe klappt soweit alles.
Aber er berechnet nicht richtig die Gesamtstrecke.
Es wird weniger, obwohl er eig. doch die hoehe des letzten Aufpralls mit der derzeitigen Hoehe nur addieren muss oder nicht?

So welche Werte kommen hier:

[[IMG]http://s7.directupload.net/images/140326/suv3jgp5.jpg[/IMG]](http://www.directupload.net)

Was mache ich falsch?

Das Problem liegt hier: gStrecke** = hoehe[i-1] + hoehe**;
Du speicherst dir immer die Summe der letzten beiden Höhen ab und gibst diese aus.

Vergiss am besten das gStrecke-Array komplett. Hier reicht dir doch ein einfacher double Wert um die Gesamtstrecke mitzuzählen. Das würde dann so aussehen:

double gesamtStrecke = 0.0;
for (int i = 0;i<=30 ;i++ ) {
      // ...
      hoehe[i+1] = hoehe** * 0.85;  
      
      // ...
      gesamtStrecke += hoehe[i+1];


      System.out.println(" | " + xAuftrumpfer + "                      " + xHoehe + "       " + "             " + gesamtStrecke);
     
    }

Das hoehe-Array könntest du dir auch sparen, indem du dir immer nur den letzten Wert merkst. Mehr benötigst du ja auch gar nicht.

Es braucht dafür kein Array…

{
  public static void main(String[] args)
  {
    
    final int n = 30;
    
    int intAuftrumpfer; 
    double dblHoehe = 20.0; 
    double dblGesamtstrecke = 0.0;
    
    
    System.out.println(" |-------------------------------------------------------------------|");
    System.out.println(" |     Auftrumpfer     |         Höhe        |      Gesamtstrecke    |");
    System.out.println(" |---------------------|---------------------|-----------------------|");
    
    for (int i = 0;i<=n ;i++ ) 
    {
      intAuftrumpfer = i;
      dblGesamtstrecke += dblHoehe;    		  
      System.out.printf(" | %-20d|%20.4f |%22.4f |%n",intAuftrumpfer,dblHoehe,dblGesamtstrecke);
      dblHoehe *= 0.85;  
      
    }    
    
    
  } // end of for
}