Array problem

Status
Nicht offen für weitere Antworten.

0blacko0

Mitglied
Hallo ich habe ein Problem :

ich will die Zahlen im Array vertauschen.
Die Methode soll das erste Element im Array mit dem letzten Element im Array vertauschen, das 2. Element mit dem vorletzten Element usw.

Code:
    public static void vertauschen(int[] regal) {
        int z=0, erste=0, z2=0, letzte=0;
        z=regal.length-1;
        z2=z/2; //z wird in die Hälfte geteilt weil man in der Schleife nur bis zur Mitte kommen muss.
        for(int z1=0; z1<z2; z1++)    {  //Solange z1 kleiner als die Hälfte der Arraygröße ist, wird z1 um 1 erhöht
            erste=regal[z1];  //Der 1. Becher wird gespeichert
            letzte=regal[z];  //Der letzte auch
            regal[z--]=erste;     //Jetzt hat der Letzte Becher den Wert vom 1 Becher
            regal[z1]=letzte;  // Der 1 Becher hat den Wert von dem Letzten Becher
        }
    }

das Bsp. geht nicht wenn ich z.b. bei der Arraygröße 5 eingebe und 5 Zahlen eingebe

z.B. 1 2 3 4 5 ist das Ergebnis 1 2 3 4 5

obwohl 5 4 3 2 1 rauskommen sollte

mfg Blacko[/code]
 
0blacko0 hat gesagt.:
Hallo ich habe ein Problem :

ich will die Zahlen im Array vertauschen.
Die Methode soll das erste Element im Array mit dem letzten Element im Array vertauschen, das 2. Element mit dem vorletzten Element usw.

Code:
    public static void vertauschen(int[] regal) {
        int z=0, erste=0, z2=0, letzte=0;
        z=regal.length-1;
        z2=z/2; //z wird in die Hälfte geteilt weil man in der Schleife nur bis zur Mitte kommen muss.
        for(int z1=0; z1<z2; z1++)    {  //Solange z1 kleiner als die Hälfte der Arraygröße ist, wird z1 um 1 erhöht
            erste=regal[z1];  //Der 1. Becher wird gespeichert
            letzte=regal[z];  //Der letzte auch
            regal[z--]=erste;     //Jetzt hat der Letzte Becher den Wert vom 1 Becher
            regal[z1]=letzte;  // Der 1 Becher hat den Wert von dem Letzten Becher
        }
    }

das Bsp. geht nicht wenn ich z.b. bei der Arraygröße 5 eingebe und 5 Zahlen eingebe

z.B. 1 2 3 4 5 ist das Ergebnis 1 2 3 4 5

obwohl 5 4 3 2 1 rauskommen sollte

mfg Blacko[/code]

Mit einem Rückgabewert zB
Code:
public class Klasse1 {
	public static int[] vertauschen(int[] regal) {
        int z=0, erste=0, z2=0, letzte=0; 
        z=regal.length-1; 
        z2=z/2; //z wird in die Hälfte geteilt weil man in der Schleife nur bis zur Mitte kommen muss. 
        for(int z1=0; z1<z2; z1++)    {  //Solange z1 kleiner als die Hälfte der Arraygröße ist, wird z1 um 1 erhöht 
            erste=regal[z1];  //Der 1. Becher wird gespeichert 
            letzte=regal[z];  //Der letzte auch 
            regal[z--]=erste;     //Jetzt hat der Letzte Becher den Wert vom 1 Becher 
            regal[z1]=letzte;  // Der 1 Becher hat den Wert von dem Letzten Becher 
        }  
        return regal;
    }
	
	public static void main(String[] arg){
		int[] a={1,2,3,4,5};
		a=vertauschen(a);
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}		
	}
}
 
So hier ist das ganze Programm (in der Methode vertauschen darf es keinen Rückgabewert geben)
Code:
import javax.swing.JOptionPane;
/**
 * Das Programm liest eine Arraygröße ein und liest dazu die Zahlen ein und vertauscht die Zahlen
 * @author Umut Delil
 * @version 2008-05-15
 */
public class ArrayTools    {
/**
 * Die Methode vertauschen vertauscht die Zahlen im Array
 * @param int[] regal ist das Array indem die Zahlen vertauscht werden
 * @return hat keinen Rückgabewert
 */
    public static void vertauschen(int[] regal) {
        int z=0, erste=0, z2=0, letzte=0;
        z=regal.length-1;
        z2=z/2; //z wird in die Hälfte geteilt weil man in der Schleife nur bis zur Mitte kommen muss.
        for(int z1=0; z1<z2; z1++)    {  //Solange z1 kleiner als die Hälfte der Arraygröße ist, wird z1 um 1 erhöht
            erste=regal[z1];  //Der 1. Becher wird gespeichert
            letzte=regal[z];  //Der letzte auch
            regal[z--]=erste;     //Jetzt hat der Letzte Becher den Wert vom 1 Becher
            regal[z1]=letzte;  // Der 1 Becher hat den Wert von dem Letzten Becher
        }
    }
/**
 * Diese Methode speichert das Array und liefert sie zurück.
 * @param int[] regal ist das Array welches die Zahlen in einer String speichert
 * @return Es werden die Zahlen im Array ausgegeben
 */
    public static String arrayText(int[] regal) {
        String ein="", aus="";
        int a, b;
        vertauschen(regal); // Das Array regal bekommt seine Werte
        for(int z1=0; z1<regal.length; z1++)    { //Solange z1 kleiner als die länge des Array´s ist  wird z1 um 1 erhöht
            aus=aus+regal[z1]+" "; //Die Zahlen im Array werden im String gespeichert
        }
        return aus; // String aus wird zurückgeliefert
    }
    public static void main(String[] args)  {
        String ein="", aus="", erg="", x="";
        int z=0, zahl=0, z2=0;
        ein=JOptionPane.showInputDialog("Geben sie eine Arraylänge ein!");
        z=Integer.parseInt(ein);
        int[] regal;
        regal=new int[z];
        for(int z1=0; z1<regal.length; z1++)    {
            ein=JOptionPane.showInputDialog("Geben sie eine Zahl ein!");
            zahl=Integer.parseInt(ein);
            regal[z1]=zahl;
        }
        vertauschen(regal);
        erg=arrayText(regal);
        JOptionPane.showMessageDialog(null, erg);
    }
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben