생성 된 숫자의 범위와 양을 지정하는 난수 생성기를 만들고 싶습니다. 모든 번호를 고유하게 만들려고합니다 (반복 없음). 이것은 내가 지금까지 해왔 던 것입니다 (생성하지만 일부는 반복됩니다, 이유는 무엇입니까?)내 자신의 난수 생성기
#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 to 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();
}
'std :: set'을 사용하여'amount '숫자가있을 때까지 세트에 삽입하십시오. 또한'rand() '대신''을 사용하십시오 –
Borgleader
흠. 나는 OP가 printf/scanf'std :: set'을 사용하고있을 가능성이 가장 높습니다. – drescherjm
그래,하지만 내 코드가 왜 작동하지 않는지 말해 줄 수 있니? Teoritycally 그것은 그것을해야합니다. – user3478487