How to cyclically rotate the elements of int array left by one in C

2 Answers

0 votes
#include <stdio.h>

int main() {
    int arr[] = {4, 7, 2, 9, 3};
    int arr_size = sizeof(arr)/sizeof(arr[0]);

    int first = arr[0];

    for (int i = 0; i < arr_size - 1; i++) {
        arr[i] = arr[i + 1];
    }
    arr[arr_size - 1] = first;
    
    for (int i = 0; i < arr_size; i++) {
        printf("%i ", arr[i]);
    }

    return 0;
}


/*
run:

7 2 9 3 4 

*/

 



answered Mar 28, 2019 by avibootz
edited Aug 21, 2022 by avibootz
0 votes
#include <stdio.h>

void leftRotateByOne(int arr[], int size) {
    int first = arr[0];

    for (int i = 0; i < size - 1; i++) {
        arr[i] = arr[i + 1];
    }

    arr[size - 1] = first;
}

int main(void)
{
    int arr[] = { 4, 7, 2, 9, 3 };

    int arr_size = sizeof(arr) / sizeof(arr[0]);

    leftRotateByOne(arr, arr_size);

    for (int i = 0; i < arr_size; i++) {
        printf("%i ", arr[i]);
    }

    return 0;
}




/*
run:

7 2 9 3 4

*/

 



answered Aug 21, 2022 by avibootz
...