hey...^^ Mir wurde als Schulaufgabe aufgetragen, ein Programm zu schreiben, dass den Inhalt eines Arrays umkehrt (d.h., dass das erste und das letzte Element vertauscht werden, das zweite und das zweitletzte etc.). Und zwar soll dies einmal iterativ und einmal rekursiv verwirklicht werden. Die iterative Variante habe ich folgendermaßen gelöst:
Bei der iterativen Variante dürften keine größeren Fehler vorhanden sein. Die rekursive Variante bereitet mir aber noch Schwierigkeiten. Hier mein Versuch:
Mir ist nicht ganz klar, wo der Fehler sein könnte...auch nach diversen Versuchen nicht. Würde mich freuen, wenn ihr mir helfen könntet. Vielen Dank
Gruß
pay
Java:
import java.util.Scanner;
class innerhalbeinesarraysvertauschen {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Bitte geben Sie die gewünschte Größe des Feldes an.");
int n = scanner.nextInt();
int[] array = new int[n];
int x = 0;
while (x < n) {
System.out.println("Belegen Sie " + x + " bitte mit einem Wert.");
array [x] = scanner.nextInt();
x++;
}
arrayumkehren(array);
}
public static void arrayumkehren(int[] array) {
int left = 0;
int right = array.length - 1;
int temp;
while (left < right) {
temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
Bei der iterativen Variante dürften keine größeren Fehler vorhanden sein. Die rekursive Variante bereitet mir aber noch Schwierigkeiten. Hier mein Versuch:
Java:
import java.util.Scanner;
class innerhalbeinesarraysvertauschenrek {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Bitte geben Sie die gewünschte Größe des Feldes an.");
int n = scanner.nextInt();
int[] array = new int[n];
int x = 0;
while (x < n) {
System.out.println("Belegen Sie " + x + " bitte mit einem Wert.");
array [x] = scanner.nextInt();
x++;
}
array = arrayumkehren(array, 0, array.length - 1, 0);
for (int h = 0; h < array.length; h++) {
System.out.print(array[h]);
}
}
public static int[] arrayumkehren(int[] array, int left, int right, int temp) {
if (left < right) {
temp = array[left];
array[left] = array[right];
array[right] = temp;
return arrayumkehren(array, left++, right--, temp);
}
else {
return array;
}
}
}
Mir ist nicht ganz klar, wo der Fehler sein könnte...auch nach diversen Versuchen nicht. Würde mich freuen, wenn ihr mir helfen könntet. Vielen Dank
Gruß
pay