Hallo zusammen,
ich habe folgendes Problem:
Es wird eine Datei mit Zahlenwerten in ein Array eingelesen. Alle Werte > 59 werden gezählt und die Anzahl der Elemente ausgegeben.
Ich hatte zum Testen das Programm 2x erstellt. MergeSort und MergeSort2. In MergeSort2 habe ich herumprobiert und es hat funktioniert.
In meiner Beispieldatei habe ich 3 Werte, die > 59 sind.
Die Ausgabe lautete dann: Sie haben 3 Rentenanwärter
Den Code habe ich mit STRG+A komplett markiert und STRG+X ausgeschnitten. Anschließend habe sowohl die MergeSort und MergeSort2 Klassen gelöscht. Dann eine neue MergeSort erstellt und den Code mit STrg+V hineinkopiert und die zweien von MergeSort2 entfernt, so dass es auf den Klassennamen MergeSort angepasst wurde.
Wenn ich jetzt starte kommt als Ausgabe: Sie haben 0 Mitarbeiter, obwohl es 3 sein müssen.
Ich kann mir nicht vorstellen versehentlich etwas verschoben zu haben oder was im Code. Kann mir bitte jemand helfen? Wenn dann müsste ich ja was aus der Main und Ausgabe beim Ausschneiden vermurxt haben, aber ich seh nix mehr vor lauter Code gucken
Das ist der Code:
ich habe folgendes Problem:
Es wird eine Datei mit Zahlenwerten in ein Array eingelesen. Alle Werte > 59 werden gezählt und die Anzahl der Elemente ausgegeben.
Ich hatte zum Testen das Programm 2x erstellt. MergeSort und MergeSort2. In MergeSort2 habe ich herumprobiert und es hat funktioniert.
In meiner Beispieldatei habe ich 3 Werte, die > 59 sind.
Die Ausgabe lautete dann: Sie haben 3 Rentenanwärter
Den Code habe ich mit STRG+A komplett markiert und STRG+X ausgeschnitten. Anschließend habe sowohl die MergeSort und MergeSort2 Klassen gelöscht. Dann eine neue MergeSort erstellt und den Code mit STrg+V hineinkopiert und die zweien von MergeSort2 entfernt, so dass es auf den Klassennamen MergeSort angepasst wurde.
Wenn ich jetzt starte kommt als Ausgabe: Sie haben 0 Mitarbeiter, obwohl es 3 sein müssen.
Ich kann mir nicht vorstellen versehentlich etwas verschoben zu haben oder was im Code. Kann mir bitte jemand helfen? Wenn dann müsste ich ja was aus der Main und Ausgabe beim Ausschneiden vermurxt haben, aber ich seh nix mehr vor lauter Code gucken
Das ist der Code:
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class MergeSort {
//Mainmethode und Ausgabe
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("C:\\meinPfad");
BufferedReader br = new BufferedReader(fr);
FileReader fr2 = new FileReader("C:\\meinPfad");
BufferedReader br2 = new BufferedReader(fr2);
FileReader fr3 = new FileReader("C:\\meinPfad");
BufferedReader br3 = new BufferedReader(fr3);
int anzahlPotenzielleRentenAnwaerter = 0; {
if (fr != null) {
MergeSort ms = new MergeSort();
int[] arr = ms.sort(0, intArr.length - 1);
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 59) {
anzahlPotenzielleRentenAnwaerter++;
}
}
}
String ausgabeTeil1 = "";
String ausgabeTeil2 = "";
do {
ausgabeTeil1 = br2.readLine();
ausgabeTeil2 = br3.readLine();
System.out.println(ausgabeTeil1 + anzahlPotenzielleRentenAnwaerter + ausgabeTeil2);
}
while (ausgabeTeil1 == null);
}
br.close();
br2.close();
br3.close();
}
public static int[] intArr = { };
public int[] sort(int l, int r) {
/**Teile
* Aufteilung der gesamten Werte in 2 Hälften bis es nicht mehr geht
*/
if (l < r) {
int q = (l + r) / 2;
sort(l, q);
sort(q + 1, r);
merge(l, q, r);
}
return intArr;
}
/**Herrsche
* Algorithmus
* hier werden
* die Werte in aufsteigender
* Reihenfolge sortiert
* und "verschmolzen"
*/
private void merge(int l, int q, int r) {
int[] arr = new int[intArr.length];
int i;
int j;
for (i = l; i <= q; i++) {
arr[i] = intArr[i];
}
for (j = q + 1; j <= r; j++) {
arr[r + q + 1 - j] = intArr[j];
}
i = l;
j = r;
for (int k = l; k <= r; k++) {
if (arr[i] <= arr[j]) {
intArr[k] = arr[i];
i++;
} else {
intArr[k] = arr[j];
j--;
}
}
}
}
Zuletzt bearbeitet: