Shift array right

Status
Niet open voor verdere reacties.

Celox

Gebruiker
Lid geworden
18 jun 2008
Berichten
8
Beste mensen,

Ik ben nu voor school kleine java opdrachten aan het doen, nu ben ik bij de opdracht beland om een array naar rechts te schuiven. Ik heb een array met ene index van 5 dit print hij dus zo uit.

0
1
2
3
4

Ik wil hem dus zo hebben
1
2
3
4
0

De laatste array sla ik op in een temp variabele en die wil ik als laatst terug plaatsen, dit is mijn code.

Code:
package remopdr4;

/**
 *
 * @author
 */
public class REMopdr4 {

    /**
     * @param args the command line arguments
     */
    public static void shiftRight(int[] reeks) {

        int temp = reeks[0];
        for (int i = 1; i < reeks.length; i++) {
            reeks[i - 1] = reeks[i];
        }

        reeks[0] = temp;
        System.out.println("Reeks: " + reeks[reeks.length]);

    }

    public static void main(String[] args) {

        int reeks[] = new int[5];
        int i;

        for (i = 0; i < reeks.length; i++)
            reeks[i] = i;


        for (i = 0; i < reeks.length; i++) 
            System.out.println("Reeks [" + i + "]: " + "Waarde: " + reeks[i]);
        

        shiftRight(reeks);

    }
}

Als je shiftRight(reeks); uit comment dan zie je wel gewoon de normale array.

Alvast bedankt voor de komende reacties.
 
close :P

enige foutje is de reeks[0] = temp. temp moet naar de laatste index dus:

reeks[reeks.length -1] = temp;

verder zit in je system.out.printline van de shiftright methode een fout. je zegt daar:

System.out.println("Reeks: " + reeks[reeks.length]);

reeks.length = 5. index 5 bestaat niet dus index out of bounds exception.

totaal:

[cpp]
/**
* @param args the command line arguments
*/
public static void shiftRight(int[] reeks) {

int temp = reeks[0];
for (int i = 1; i < reeks.length; i++) {
reeks[i - 1] = reeks;
}

reeks[reeks.length -1] = temp;

for (int value : reeks)
{
System.out.println(value);
}
}

[/cpp]
 
<3
dank je wel!

Nu ik het zo zie is het wel een stomme fout van mij.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan