Hallo zusammen
Bin fast am verzweifeln, da ich auf diese einfache Lösung nicht komme.
Zunächst die Beschreibung:
Ich lese von der Konsole verschiedene Int-Werte ein, die ich dann in einem Array speicher.
Dann sortiere ich den Inhalt in aufsteigender Reihenfolge.
So.
Bis dahin hab ich alles übersichtlich in Methoden gekapselt, die eine liest int-werte ein bis der Benutzer
"stop" eingibt und hat als Rückgabe-Typ das Int-Array.
Die nächste bekommt das Array übergeben und sortiert das ganze schön.
Jetzt habe ich das schön sortierte Array und möchte den Inhalt gefolgt von dem Vorkommen der jeweiligen Einträge ausgeben.
Ich bin bei folgendem angelangt:
Soweit so schön, die Methode erzeugt aber leider sinnlosen Output:
Wenn der User beispielsweise
12
12
14
12
eingibt,
Ist die Ausgabe:
Die Zahl 12 kommt 3 mal vor.
Die Zahl 12 kommt 2 mal vor.
Die Zahl 12 kommt 1 mal vor.
Die Zahl 14 kommt 1 mal vor.
Wie ihr euch denken könnt, möchte ich Redundanz ausschliessen, d.h. als Ausgabe möchte ich folgendes haben:
Die Zahl 12 kommt 3 mal vor.
Die Zahl 14 kommt 1 mal vor.
Ich weiss, die Lösung liegt näher als ich denke, aber ich checks grad wirklich nicht ^^
Danke im vorraus + Grüße
Bin fast am verzweifeln, da ich auf diese einfache Lösung nicht komme.
Zunächst die Beschreibung:
Ich lese von der Konsole verschiedene Int-Werte ein, die ich dann in einem Array speicher.
Dann sortiere ich den Inhalt in aufsteigender Reihenfolge.
So.
Bis dahin hab ich alles übersichtlich in Methoden gekapselt, die eine liest int-werte ein bis der Benutzer
"stop" eingibt und hat als Rückgabe-Typ das Int-Array.
Die nächste bekommt das Array übergeben und sortiert das ganze schön.
Jetzt habe ich das schön sortierte Array und möchte den Inhalt gefolgt von dem Vorkommen der jeweiligen Einträge ausgeben.
Ich bin bei folgendem angelangt:
Code:
public void countElementsInIntArray(int[] ir){
sortAscend(ir); // Meine Sortier-Methode
int anzahl;
for(int i = 0; i < ir.length-1; i++){
anzahl = 1;
for(int j = i+1; j < ir.length; j++){
if(ir[i] == ir[j]){
anzahl++;
if(ir[j]!=ir[i]){
al.add(ir[i]);
al.add(anzahl);
}
}
}
System.out.println("Die Zahl " + ir[i] + " kommt " + anzahl + " mal vor.");
}
}
Soweit so schön, die Methode erzeugt aber leider sinnlosen Output:
Wenn der User beispielsweise
12
12
14
12
eingibt,
Ist die Ausgabe:
Die Zahl 12 kommt 3 mal vor.
Die Zahl 12 kommt 2 mal vor.
Die Zahl 12 kommt 1 mal vor.
Die Zahl 14 kommt 1 mal vor.
Wie ihr euch denken könnt, möchte ich Redundanz ausschliessen, d.h. als Ausgabe möchte ich folgendes haben:
Die Zahl 12 kommt 3 mal vor.
Die Zahl 14 kommt 1 mal vor.
Ich weiss, die Lösung liegt näher als ich denke, aber ich checks grad wirklich nicht ^^
Danke im vorraus + Grüße