Array als Parameter übergeben

lenarena

Mitglied
Schönen Vormittag!

Ich tüftle schon seit gestern - und hab mich auch schon durch unzählige Foren gelesen, leider komme ich nicht drauf wieso mein Programm nicht funktioniert.
Die Aufgabe ist, eine Methode zu schreiben, die den Mittelwert eines double Arrays liefert -> mithilfe eines Parameters. Ich denke, die Codierung des Mittelwerts passt soweit, vielmehr ist mir unklar, ob ich das mit dem Methoden-Parameter ordentlich programmiert habe.

ich bekomme da folgende Fehlermeldung des Compilers

berechneMittelwert(double[]) in mittelwert.Mittelwert cannot be applied to (double,double,double,double,double)
berechne.berechneMittelwert(344.09, 590.89, 459.03, 659.45, 495.02);


Ich dachte ich könnte die Zahlen dann einfach so eingeben, oder liegt es daran dass man eine andere schreibweise benutzen muss? - oder muss ich zuvor ein double[] array schreiben? und dann dieses mit der Methode aufrufen?
Vielleicht kann mir jemand kurz erklären wie das in der main funktioniert. Vielen Dank!



Java:
class Mittelwert {
   
   
  public void berechneMittelwert(double[]a){
       
       a= new double[5];
       int i;
       double summe=0.0;
       
       for (i=0; i<=a.length; i++){
        summe = summe+a[i];
        
        System.out.println(summe/a.length); }
    } }


class TestLauf {
    
    public static void main (String[] args){
        
      
        Mittelwert berechne = new Mittelwert();
        berechne.berechneMittelwert(400.09, 234.05, 700.02, 645.09, 9457.80);
    }
 
}
 
Java:
  public void berechneMittelwert(double[]a){
       
       a= new double[5];
In Java gibt es nur Call-By-Value, das Array dass du erstellst verlässt nie die Methode.

Dein eigentliches Problem:
Du übergibst kein Array, sondern einfach nur Parameter, eine Möglichekit wäre, die Methode so zu deklarieren (wodurch der Compiler implizit ein Array erstellt):
Java:
public void berechneMittelwert(double... a)
...
 
Zuletzt bearbeitet von einem Moderator:
Nein das geht so nicht, dazu musst du ein Array übergeben

Java:
berechne.berechneMittelwert(new double[]{400.09, 234.05, 700.02, 645.09, 9457.80});

edit und der Fehler den Maki schon angedeutet hat
 
Du übergibst keinen array sondern jede Menge doubles - sagt der Kompiler ja auch ;-)

Java:
	double[] da = {344.09, 590.89, 459.03, 659.45, 495.02};
	Mittelwert berechne = new Mittelwert();
	berechne.berechneMittelwert(da);

EDIT: du bist gemein - jawoll ;( einfach so 2 Sekunden shneller sein 😀
 

Zurück
Oben