Ringtausch

Status
Nicht offen für weitere Antworten.

Mister H

Mitglied
Servus miteinand,

ich wollte ein programm erstellen, welches einen Ringtausch von Zahlen vornimmt. Ich möchte dass man eine bestimmte Anzahl von Zahlen eingibt ( hängt von der Länge des Arrays ab, bei mit zZ 5). Die Zahlen in einer Reihe sollen dann den Array werten von null bis 5 zugeordnet werden. Ich habe das ganze mit .charAt() ausprobiert, allerding funktioniert das nur solange ich keinen Array habe. Mein versuch war einfach nur über eine String eingabe, dann die werte des strings an den verschiedenen stellen auszulesen und dann auf die verschiedenen werte des array zu schreiben, allerdings geht das leider nicht. der rest funktioniert dann eigentlich. hatte es vorher so gemacht, dass ich die werte einzeln eingelesen hab ( siehe (/*...*/ unten).
viell versteht jemand mein problem und kann mir weiterhelfen.

merci im vorraus und schöne weihnachten noch*g*
Servus Andi



Code:
import java.io.*;


public class Wrap2
{
 public static void main ( String []args) throws IOException
 {
   int[]a=new int [5];
   String []z=new String[5];//z=Zahlenwert von Tastatureingabe
   String Eingabe;

   BufferedReader y = new BufferedReader(new InputStreamReader(System.in));


    System.out.print("Eingabe von 5 Zahlen= ");
    Eingabe=y.readLine();
    Eingabe.charAt(1);
    /*z[0]=y.readLine();
    z[1]=y.readLine();
    z[2]=y.readLine();
    z[3]=y.readLine();
    z[4]=y.readLine();*/

    a[0]= Integer.parseInt(z[0]);
    a[1]= Integer.parseInt(z[1]);
    a[2]= Integer.parseInt(z[2]);
    a[3]= Integer.parseInt(z[3]);
    a[4]= Integer.parseInt(z[4]);
    System.out.println("Werte nach Umwanlung von String auf Integer");
    System.out.println(" ");
   
    System.out.println ("a[0]= "+ a[0] );
    System.out.println ("a[1]= "+ a[1] );
    System.out.println ("a[2]= "+ a[2] );
    System.out.println ("a[3]= "+ a[3] );
    System.out.println ("a[4]= "+ a[4] );
    System.out.println(" ");
    System.out.println ("Werte nach dem Ringtausch");
    int aNull=a[0];
    int i;
    int ip1=0;
    for (i=0;i<4;i++)
        {
         a[i]=a[i+1] ;
         ip1++;
        }
        a[ip1]=aNull;
    System.out.println(" ");
    System.out.println ( "a[0]= "+a[0] );
    System.out.println ( "a[1]= "+a[1] );
    System.out.println ( "a[2]= "+a[2] );
    System.out.println ( "a[3]= "+a[3] );
    System.out.println ( "a[4]= "+a[4] );

 }


}
 

Marcello

Mitglied
Dir fehlt eine Zuordnung von den Ziffern der Eingabe zu deinem Array. In Zeile 18 machst du ja nichts weiter mit dem Zeichen an der ersten Stelle. Du musst die Ziffern den Komponenten des Arrays zuordnen.
 

mic_checker

Top Contributor
vielleicht liegts dran das ich gerad erst von der arbeit komm, aber was genau willst du machen. versteh gerad nicht was du mit ringtausch meinst. mach ma konkret nen beispiel oder erklärs anders *g*

Deinem Code nach zu urteilen willst du irgendwelche Verschiebungen der stellen erreichen?
 
B

bygones

Gast
ja er will scheinbar nach rechts verschieben sozusagen

also aus

1 2 3 4 5

wird

5 1 2 3 4

wie gesagt, dir fehlt das richtige zuordnen der zahlen. Wenn du die Zahlen in einer Zeile einlesen lässt, so musst du dann diese Zeile splitten. Schau dir dazu mal die Klasse StringTokenizer an bzw. die Methode split in der String klasse
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben