#include <stdio.h>
void reverse(int arr[], int start, int end) {
int temp;
for (int i = start, j = end; i <= end && j > i; i++, j--) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
void print(int arr[],int size) {
for (int i = 0; i < size; ++i) {
printf("%2d", arr[i]);
}
printf("\n");
}
void split(int arr[], int size, int split_point) {
if (size <= 1 && split_point < 1 && split_point >= size) {
return;
}
// reverse first part
reverse(arr, 0, split_point - 1);
// reverse second part
reverse(arr, split_point, size - 1);
// reverse all array
reverse(arr, 0, size - 1);
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int size = sizeof(arr)/sizeof(arr[0]);
int split_point = 3;
split(arr, size, split_point);
print(arr, size);
return 0;
}
/*
run:
4 5 6 7 8 9 0 1 2 3
*/