Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen

Moin Leute,

ich bin ein Anfänger in Java und beim Bewältigen der Array-Probleme komme ich leider durcheinander und ich wäre für jeden Tipp sehr dankbar. :)
Ich möchte eine Methode schreiben, die bei einem gegebenen Array jede Zeile einzeln aufsummiert und daraus den Durchschnitt berechnet.
(Mit der For-Schleife die Summe zu bilden und Durchschnitt zu berechnen, kriege ich hin, was aber mit einem enormen Schreibaufwand verbunden ist. )

Java:
       public class Average{
               public static void main(String[] args){
                      int[][]  array  = {{1,2,3,6,8,11},
                                        {2,5,8,11,5,4},
                                        {3,4,7,6,6,4,8},
                                        };
                     System.out.println("Summe= "+sum(t, 0 );
                     System.out.println("Durchschnitt= "+durchschnitt(sum(t,0),a[0].length);
              }
              public static durchschnitt(int summe, a[].length){
                      int avg=summe/a[].length;
              return avg;
              }
              public static int sum(int a[][], int zeilenIndex ){
                       int summe=0;
              for(int i=0; i<a.[zeilenIndex]length; i++){
              summe= summe + a[zeilenIndex][i];
              }   
              return summe;
              }
        }
 

Robat

Top Contributor
Hey,
mal so vorab - dein Code ist schwer zu lesen weil die Formatierung nicht so der Bringer ist.
Denk da das nächstes mal bitte dran :)
Was du machen willst, hast du quasi schon implementiert. Du musst dir nur etwas anderes ausgeben lassen.

Nehmen wir uns mal deine for-Schleife für die Summe zur Hand.

Java:
for(int i = 0; i < array.length; i++)
{
    for(int j = 0; j < array[i].length; j++)
    {
         summe += array[i][j];
    }
}
System.out.println(summe);

Das würde dir, wie du schon Richtig gemacht hast, die Summe des kompletten Arrays ausgeben.
Du willst, dass er dir die Summe nach jeder Zeile ausgibt. Eine Zeile endet nach der inneren for-Schleife, also hier:
Java:
for(....)
{
    for(...)
    {
  
    }
    // hier ist die i. Zeile zu ende.
}

Was du also brauchst, ist eine Variable deren Wert am Anfang einer neuen Zeile auf 0 gesetzt, in der inneren for-Schleife aufsummiert und am Ende einer Zeile ausgegeben wird.
Dein Pseudocode sieht also so aus:
Java:
FOR(i = 0; i < array.length; i++)
{
      temp = 0;
     FOR(j = 0; j < array[i].length; j++)
     {
          temp += array[i][j];
     }
     OUT: temp;
}

Für die Spalten funktioniert das genauso. (Mann muss nur ein bisschen drüber nachdenken.)

Ich würde dir einfach mal zeigen wie man ein Array Spaltenweise ausgibt (Voraussetzung für den Lösungsansatz ist, dass jede Zeile die selbe Anzahl an Elementen besitzt)

Java:
for(int j = 0; j < array[0].length; j++)
{
    for(int i = 0; i < array.length; i++)
    {
        System.out.print(array[i][j] + " ");
    }
System.out.println();
}

Da kannst du ja mal selbst probieren, die Summe / den Durchschnitt zu errechnen :)
 
Ich danke dir , Robat, für deine Antwort. :) Es tut mir leid für die Formatierung, dabei habe ich mir wirklich viel Mühe gegeben, den Code einigermaßen verständlicher zu formatieren :(. Danke für deine Tipps, ich werde jetzt versuchen, den Code mit deinen Tipps (Hilfsvariable temp) zum Gang zu bringen.

Schöne Grüße
 
Danke für den Hinweis, JStein, t=array.
Java:
public class Average{
               public static void main([] args){
                     int[][] array  ={{1,2,3,6,8,11},
                                       {2,5,8,11,5,4},
                                       {3,4,7,6,6,4,8},
                                       };
                 System.out.println("Summe= "+sum(array, 0);
                 System.out.println("Durchschnitt= "+durchschnitt(sum(array,0),a[0].length);
               }

Die Gedanke war es, 2 Methoden zu schreiben, mit denen ich bei der Ausgabe in "main" die gewünschte Zeile aufsummieren und den Durchschnitt ausgeben kann.
Java:
public class Average{
               public static void main([] args){
                     int[][] array  ={{1,2,3,6,8,11},
                                       {2,5,8,11,5,4},
                                       {3,4,7,6,6,4,8},
                                       };
                    System.out.println("Summe= "+sum(array, 0);  // Methode sum(mein int array, gewünschte Zeile zum aufsummieren )
                    System.out.println("Durchschnitt= "+durchschnitt(sum(array,0),a[0].length);
              }

Ich habe leider Schwierigkeiten beim verstehen von Syntax eines 2D-Array .
z. Beispiel: Länge der Zeile in meinem Beispiel
Java:
array.length=3 // Er gibt mir die Länge der Spalte meines Arrays

array[0].length= //die Länge der Zeile bei Spalte 0 oder?
 

Robat

Top Contributor
Ich habe leider Schwierigkeiten beim verstehen von Syntax eines 2D-Array .
Was genau verstehst du denn nicht?
Ein Array kannst du dir wie ein Regal, Schachbrett, oder viele Kartons vorstellen. Was auch immer du dir am Besten vorstellen kannst.
Der 1. Index beschreibt immer in welcher Reihe du dich befindest und der 2. Index in welcher Spalte. Wenn du also ein 3x3 Array hast dann sehen die Indizes so aus:

[0][0] [0][1] [0][2]

[1][0] [1][1] [1][2]

[2][0] [2][1] [2][2]

Und daraus lässt sich auch deine obige Frage beantworten --> array[0].length liefert dir die länge der 1. Reihe (also Index = 0), array[1].length der 2. Reihe, usw.

Die Gedanke war es, 2 Methoden zu schreiben, mit denen ich bei der Ausgabe in "main" die gewünschte Zeile aufsummieren und den Durchschnitt ausgeben kann.

Das kannst du ja auch. Die Methode dafür könnte so aussehen:

Java:
private int getSumOfLine(int line, int[][] array)
{
     if(line > 0 && line < array.length)
     {
         int sum = 0;
         for(int i = 0; i < array[line].length; i++)
         {
               sum += array[line][i];
         }
         return sum;
     }

    return -1;
}

Erklärung:
Am Anfang solltest du natürlich prüfen, ob die angegebene Zeile in dem Array existiert.

Wenn das der Fall ist:
-durchläufst du das Array in der gewünschten Zeile line und addierst immer das Element array[line][i] drauf. Am Ende gibst du die Summe zurück.

Wenn das nicht der Fall ist, gibst du bspw -1 zurück. (-1 ist dahingehend schlecht, weil die Summe ja auch negativ sein kann, darum gehts aber nicht).[/i]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
B Array Durchschnitt Java Basics - Anfänger-Themen 5
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
S paarweise Durchschnitt Java Basics - Anfänger-Themen 7
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
G Summen addieren und Durchschnitt bilden Java Basics - Anfänger-Themen 4
B Quicksort mit Durchschnitt als Pivot Java Basics - Anfänger-Themen 1
K Erste Schritte Arrays - Zahlenabfrage und Durchschnitt Java Basics - Anfänger-Themen 1
P Durchschnitt berechnen Java Basics - Anfänger-Themen 15
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
M Java Array - Durchschnitt Java Basics - Anfänger-Themen 7
Antoras Durchschnitt ist nicht korrekt; Eingaben löschen Java Basics - Anfänger-Themen 7
J Double[] Feld und Durchschnitt Java Basics - Anfänger-Themen 2
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
B Erste Schritte Guice Injection nicht in jeder Klasse möglich Java Basics - Anfänger-Themen 2
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
Xentox501 keyevent.VK_LEFT wird beim drücken jeder belibigen Taste aktiv. Java Basics - Anfänger-Themen 3
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
Tom299 Log4j in jeder Klasse definieren? Java Basics - Anfänger-Themen 12
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
V Vor jeder Multiplikation den linken Multiplikator abrunden Java Basics - Anfänger-Themen 4
K Regex - Jeder buchstabe nur einmal Java Basics - Anfänger-Themen 7
S JTabbedPane jeder Tab in einer eigenen java Datei? Java Basics - Anfänger-Themen 3
Binary.Coder Vor und nach jeder Codezeile etwas einfügen Java Basics - Anfänger-Themen 3
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
K JDBC - Typ Connection in jeder Klasse neu öffnen? Java Basics - Anfänger-Themen 4
K in jeder klasse SQLExceptions??? Java Basics - Anfänger-Themen 2
G HILFE!!! JEDER MONAT HAT 31 TAGE Java Basics - Anfänger-Themen 2
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
padde479 Zeile entfernen TableModel Java Basics - Anfänger-Themen 11
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
dieter000 Wie schreibe ich diese ZEile um? Java Basics - Anfänger-Themen 1
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
A Jede x-te Zeile, lösche 10 Zeilen Java Basics - Anfänger-Themen 9
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
B Code Zeile unklar Java Basics - Anfänger-Themen 9
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
F Zeile in Ordner Java Basics - Anfänger-Themen 4
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Java liest nur eine Zeile ein Java Basics - Anfänger-Themen 3
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
M Zeile in datei überschreiben Java Basics - Anfänger-Themen 5
S drawString() neue Zeile Java Basics - Anfänger-Themen 4
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
snipesss [Java] Schriftart und Schriftgröße von JLabel in einer Zeile festlegen? Java Basics - Anfänger-Themen 3
H Variablen Zeile aus einem ResultSet ausleesen Java Basics - Anfänger-Themen 7
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
R Ab einer bestimmten Zeile lesen Java Basics - Anfänger-Themen 3
T Zeilen des ListArray nach einem Wort durchsuchen und diese Zeile ausgeben Java Basics - Anfänger-Themen 4
C Datentypen Zeile aus mehrdimensionalem Array extrahieren uns abspeichern Java Basics - Anfänger-Themen 6
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
S Zeile entfernen aus JTable Java Basics - Anfänger-Themen 15
S In JTable Zeile selektieren mit Mausklick Java Basics - Anfänger-Themen 16
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
A CSV datei eine Bestimmte Zeile ansprechen Java Basics - Anfänger-Themen 1
J Input/Output Zeile in Textdatei ändern Java Basics - Anfänger-Themen 14
S Java CSV, er nimmt die nächste Zeile nicht Java Basics - Anfänger-Themen 2
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
G Zeile charweise lesen Java Basics - Anfänger-Themen 3
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
G Leere Zeile lesen Java Basics - Anfänger-Themen 12
G zeile: Was bedeutet das in der Methode? Java Basics - Anfänger-Themen 4
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
T Textdatei Zeile löschen? Java Basics - Anfänger-Themen 4
C Input/Output Hilfe..txt Datei zeile verändern und Ausgabe ..Hilfe Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben