Arrays in Reihenfolge vertauschen

BLN

Neues Mitglied
Hallo,
ich will ein Java-Pogramm schreiben, dass ein Array beliebiger Länge entgegennimmt, dessen Elemente in der Reihenfolge vertauscht und ein entsprechendens Array zurückgibt. Leider bin ich erst ein Anfänger und komme nicht weiter. Ich hoffe ihr könnt mir helfen.
Das hab ich bis jetzt:



Java:
import java.util.Scanner;

class Arrays{
 
  static int[] turnArray(int[] feld ) {
    int i;
    for (i=0;i<feld.length;i++) {
      int z = feld;
      feld.length - i = z;
    } // end of for
  }
 
  public static void main (String[] args){
    Scanner text = new Scanner (System.in);
    System.out.print("Feldgroesse eingeben:");
    int n = text.nextInt();
    int[] feld = new int[n];
    for (int i = 0;i<n;i++) {
      feld[i] = 2*i;
      feld = turnArray (feld);
    }
    for (int i = 0;i<n;i++) {
      System.out.print(feld[i] + " ");
    } // end of for
    System.out.println();
  }
}
 
Was bedeutet vertauschen?
du kannst per
Java:
feld[i]
auf den i-ten Eintrag zugreifen.
Java:
feld.length- i = z;
Mach so keinen Sinn, die Zuweisung entspricht immer Ziel = Quelle und du kannst deswegen der Differenz nichts zuweisen.
 
Du willst das Array einfach in umgekehrter Reihenfolge haben nehme ich an? Dann hilft dir das:
Java:
static int[] turnArray(int[] feld ) {
    int[] temp = new int[feld.length];
    for (int  i = 0; i < feld.length; i++) {
            temp[i] = feld[feld.length-1-i];
    }
    return temp;
}
Warum auch immer du die Reihenfolge nach jeder Einfügenoperation umdrehen willst ist mir nicht ersichtlich, du wirst somit nicht alle Arraypositionen füllen.
 
Zuletzt bearbeitet:
das wird so nicht funktionieren:
1. Du gibst das neu erstellte array nicht zurück
2. temp[i] = feld[feld.length-i]
wird zu einer ArrayIndexOutOfBoundsException führen, da du beim ersten durchlauf temp[0] auf temp[temp.length] setzt. Du musst eben temp.length-i-1 nutzen
 

Neue Themen


Zurück
Oben