Hallo, ich habe ein Programm zur Überrpüfung von Arrays erstellt. Eigentlich funktioniert alles, auch die Sortierung (aufsteigend (siehe Code) oder absteigend (nicht im folgenden Code)). Was mir Kopfzerbrechen bereitet ist: Wie kann ich zuerst die ungeraden und dann die geraden Zahlen ausgeben!? Ich komme nicht drauf...
Für Hilfe wäre ich sehr dankbar!!
Für Hilfe wäre ich sehr dankbar!!
Java:
public class Arrays {
public static void main(String[] args) {
int[] a1, a2;
//gewünschte Array-Längen einlesen
int l1, l2;
IO.write("Length of Array a1: ");
l1 = IO.readInt();
if(l1<=0) return; //ungültig -> Abbruch: Feld mit max. 0 Elementen ist sinnlos!
IO.readLn();
IO.write("Length of Array a2: ");
l2 = IO.readInt();
IO.readLn();
if(l2<=0) return; //ungültige Eingabe -> Abbruch
IO.writeLn(); //leere Zeile dazwischen
//Arrays erzeugen
a1 = new int[l1];
a2 = new int[l2];
//f1 einlesen, und zwar l1 Elemente
IO.writeLn("Elements of a1: ");
for(int i = 0; i<l1; i++) {
a1[i] = IO.readInt();
IO.readLn();
}
IO.writeLn(); //leere Zeile dazwischen
//f2 einlesen l2 Elemente
IO.writeLn("Elements of a2: ");
for(int i = 0; i<l2; i++) {
a2[i] = IO.readInt();
IO.readLn();
}
//Arrays zusammenkopieren
int[] f3 = new int[l1 + l2];
for(int i = 0; i<l1; i++) {
f3[i] = a1[i];
}
for(int i = 0; i<l2; i++) {
f3[i+l1] = a2[i];
}
//f3 sortieren
int n; //Index des kleinsten Elements im noch zu durchsuchenden Array
int temp; //Zwischenvariable f. das Wert-Austauschen
for(int pos = 0; pos<l1+l2-1; pos++) {
n = pos;
for(int i = pos+1; i<l1+l2; i++) {
if(f3[i]<f3[n]) n = i;
}
if(pos!=n) {
temp = f3[n]; //altes f[n] merken
f3[n] = f3[pos];
f3[pos] = temp;
}
}
//f3 ist sortiert: Ausgabe:
IO.writeLn();
IO.write("Merged array:");
for (int i = 0; i<l1+l2; i++) { //wir durchlaufen alle Elemente aus f3 und geben sie einfach aus:
IO.write(f3[i] + " ");
}
}
}