From 40a6501fde4a4b76a3c1e73740a797ae705525ac Mon Sep 17 00:00:00 2001 From: Jonas Date: Sun, 23 Nov 2025 17:29:45 +0100 Subject: [PATCH] fixing error in dublicateRandomEntry --- I2_Dobble/numbers.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/I2_Dobble/numbers.c b/I2_Dobble/numbers.c index fea8960..f3f23d2 100644 --- a/I2_Dobble/numbers.c +++ b/I2_Dobble/numbers.c @@ -13,10 +13,23 @@ static void dublicateRandomEntry (unsigned int *numbers, unsigned int len) { - unsigned int dubIndx = rand() % len; - unsigned int copyIndx = rand() % len; + if (numbers && len > 2) + { + unsigned int dubIndx = rand() % len; + unsigned int copyIndx; + + do { + copyIndx = rand() % len; + } while (copyIndx == dubIndx); - numbers[copyIndx] = numbers[dubIndx]; + numbers[len - 1] = numbers[dubIndx]; + + //switching last entry with random other entry + unsigned int temp; + temp = numbers[copyIndx]; + numbers[copyIndx] = numbers[len - 1]; + numbers[len - 1] = temp; + } } static int compare(const void *a, const void *b)