shifting array elements to right?

c#

Solution

//right shift with modulus
for (int i = 0; i < arr.length; i++) {
    demo[(i+1) % demo.length] = arr[i];
}

Problem

I can't use a built-in function for this, I must use my own logic. I've done element shifting to the left side, but the right side doesn't work for me. Not sure why. My method for left: ``` public int[] shiftLeft(int[] arr) { int[] demo = new int[arr.length]; int index = 0; for (int i = 0; i < arr.length - 1; i++) { demo[index] = arr[i + 1]; index++; } return demo; } ``` and my attempt for the right shifting: ``` public int[] shiftRight(int[] arr) { int[] demo = new int[arr.length]; int index = 0; for (int i = arr.length - 1; i >= 0; i--) { demo[index] = arr[(i - 1 > 0) ? i - 1 : 0]; index++; } return demo; } ``` What am I doing wrong? By shifting I mean: you have an array, `1 2 3 4 5 6` Shifting it to left by one: `2 3 4 5 6 1` Shifting it to right by one: `6 1 2 3 4 5`

Original source