c - My own random number generator -



c - My own random number generator -

i want create random number generator user specifies range , amount of generated numbers. want create every number unique (no repeat). i've done far (it generates of them repeat, why?)

#include <time.h> #include <stdio.h> #include <windows.h> #include <conio.h> int main() { srand(time(null)); int start, stop, amount; system("chcp 1250 >nul"); printf("welcome random number generator!\n"); printf("\nwhat range? \nfrom: "); scanf("%i", &start); printf("to: "); scanf("%i", &stop); printf("\nhow many numbers?: "); scanf("%i", &amount); int number[amount]; for(int i=0; i<amount; i++) { number[i] = rand() % ((stop+1)-start) + start; for(int j=i; j>-1; j--) { if(number[i]==number[j]) { number[i] = rand() % ((stop+1)-start) + start; } } printf("\n%i generated number: %i", i+1, number[i]); sleep(10); } getch(); }

your "check dupes" loop incorrect. might find duplicate, don't check if re-generated number exists in stuff tested.

e.g. consider array this. user asked 5 numbers, range 1-10

number[0] = 5 number[1] = 6 number[2] = 2 number[3] = 8

now you're working on number[4]. generate 2... scan array backwards , find 2 dupe. generate new number... , generate 8. don't reset j loop - maintain working backwards, , never see 8 in array.

what should have more like:

for(int j=i; j>-1; j--) { if(number[i]==number[j]) { number[i] = rand() % ((stop+1)-start) + start; j = i; // reset loop } }

and note code can produce infinite loop. e.g. consider asking numbers in range 1-3, , generate 4 of them. 1,2,3,?. status can never satisfied, because can't have 1-3 without @ to the lowest degree 1 repeat.

c random numbers generator

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -