M
misaki
Gast
Hallo! 🙂
Ich hab folgende Aufgabe vor mir .. ^^
Der Benutzer gibt ein Array von integer-Zahlen ein. Das Array soll dann so bearbeitet werden, dass im hinteren Teil alle ungeraden Zahlen stehen und vorne die geraden.
Ich bin mir eigentlich ziemlich sicher, dass mein Programm .. stimmt. Hoffentlich. Aber ich hab immer eine Fehlermeldung, angeblich in Zeile 43. Vielleicht kann sichs mal jemand anschaun, ich komm einfach nicht drauf...
Ich hab folgende Aufgabe vor mir .. ^^
Der Benutzer gibt ein Array von integer-Zahlen ein. Das Array soll dann so bearbeitet werden, dass im hinteren Teil alle ungeraden Zahlen stehen und vorne die geraden.
Ich bin mir eigentlich ziemlich sicher, dass mein Programm .. stimmt. Hoffentlich. Aber ich hab immer eine Fehlermeldung, angeblich in Zeile 43. Vielleicht kann sichs mal jemand anschaun, ich komm einfach nicht drauf...
Java:
public class Bsp12 {
public static void main(String[] args) {
int laenge;
int hilf;
int j;
System.out.println("Geben Sie die Anzahl ihrer Werte ein, die sie danach eingeben.");
laenge = SavitchIn.readLineInt();
int feld[] = new int[laenge];
System.out.println("Geben Sie nun die Werte für das Feld ein. Die Anzahl dieser muss der zuvor eingegeben Laenge entsprechen. Es muessen also " +
laenge + " Werte eingegeben werden (sonst wartet das Programm auf erneute Eingabe oder ignoriert die letzten Zahlen):");
for (int i=0; i<feld.length; i++)
feld[i] = SavitchIn.readInt();
System.out.println("Array, bevor etwas verschoben wurde:");
for (int i=0; i<feld.length; i++)
System.out.print(feld[i] +" ");
for (int i=0; i<feld.length; i++) {
if (feld[i]%2 == 0)
feld[i] = feld[i]; // Verschiebe die Zahl nicht, wenn sie gerade ist, also durch 2 teilbar
else {
j = i;
while (j<feld.length) {
hilf = feld[j];
feld[j] = feld[j+1];
feld[laenge-1] = hilf;
j++;
}
}
}
System.out.println("Array, nachdem die ungeraden Zahlen nach hinten verschoben wurden");
for (int i=0; i<feld.length; i++)
System.out.print(feld[i] +" ");
}
}