나는 crand에서 간단한 예제를 만들고 있지만, srand()를 사용하고 있음에도 불구하고 함수는 항상 같은 숫자를 반환합니다.rand()는 동일한 숫자를 반환합니다.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generate(int min, int max)
{
srand(time(NULL));
return rand() % (max - min + 1) + min;
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("Number random %d = %d\n", i, generate(1, 100));
}
return 0;
}
실행 :
번호 랜덤 0 = 40 번호 랜덤 1 = 40 번호 랜덤 2 = 40 번호 랜덤 3 = 40 번호 랜덤 4 = 40
이
는 코드 번호 랜덤 5 = 40 번호 랜덤 6 = 40 번호 랜덤 7 = 40 번호 랜덤 8 = 40 번호 랜덤 9 = 40
당신은 새로운 씨앗 모든 사용을 강요해서는 안 그것을 호출합니다. 매번 응용 프로그램을 시작할 때''srand''를 사용해야합니다. BTW, 당신은 정말로 오래된 학교의''rand' 대신''''을 사용하는 것을 고려해야합니다. –
주 기능 시작 부분에 난수 초기화를 시도하십시오. – flotto
고맙습니다. 작동합니다! –