How to shift array elements to right by one position from specific index in C

1 Answer

0 votes
#include <stdio.h>
 
void ShiftArrayToRightFromIndex(int arr[], int size, int index) {
    int temp = arr[size - 1];
 
    for (int i = size - 1; i > index; i--) {
        arr[i] = arr[i - 1];
    }
     
    arr[index] = temp;
}
 
int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
     
    int size = sizeof(arr) / sizeof(arr[0]);
 
    int index = 3;
     
    ShiftArrayToRightFromIndex(arr, size, index);
 
    for (int i = 0; i < size; i++)
        printf("%d ", arr[i]);
 
    return 0;
}
 
 
 
 
/*
run:
 
1 2 3 9 4 5 6 7 8
 
*/

 



answered Sep 10, 2022 by avibootz
...