How to pick random index from an array and move the element to end of array with C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void ShiftArrayToLeft(int arr[], int size, int start) {
	for (int i = start; i < size - 1; i++) {
		arr[i] = arr[i + 1];
	}
}
void PrintArray(int arr[], int size) {
	for (int i = 0; i < size; i++)
		printf("%d ", arr[i]);
}
int main(void) {
	int arr[] = { 4, 9, 12, 90, 13, 0, 3, 97 };

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

	PrintArray(arr, size);

	srand((unsigned int)time(NULL));

	int index = rand() % (size - 1);
	int randomnumber = arr[index];

	printf("\nrandom number = %d\n", randomnumber);
	
	ShiftArrayToLeft(arr, size, index);

	arr[size - 1] = randomnumber;

	PrintArray(arr, size);

	return 0;
}



/*
run:
  
4 9 12 90 13 0 3 97
random number = 90
4 9 12 13 0 3 97 90
  
*/

 



answered Nov 22, 2022 by avibootz
edited Nov 23, 2022 by avibootz

Related questions

1 answer 146 views
146 views asked Nov 22, 2022 by avibootz
1 answer 146 views
1 answer 139 views
2 answers 148 views
2 answers 186 views
1 answer 205 views
...