rand 함수 질문있습니다.
엄지
질문 내용 : /* 파일 : random.c */
#include stdio.h
#include stdlib.h //rand(), srand() 를 위한 헤더파일 포함
#include time.h//time ()을 위한 헤더 파일 포함
#define MAX 45
int main(void)
{
int i, number;
long seed;
printf(0~%5d 사이의 난수 6개 : rand() \n\t,RAND_MAX);
for (i=0; i6; i++)
printf(%5d,rand() );
printf(\n\n);
printf(1~%5d 사이의 난수 6개 : rand() %%45+1\n\t, MAX);
for (i=0; i6; i++)
{
number = rand() % MAX +1;
printf(%5d,number);
}
printf(\n\n);
seed = time(NULL);
srand(seed) ;
printf(1~%5d 사이의 난수 6개 : srand(time(NULL)); rand () %%45 +1\n\t,MAX);
for(i=0; i6; i++)
{
number = rand ()%MAX+1;
printf(%5d,number);
}
printf(\n\n);
return 0;
}출력하면 사진처럼 나옵니다. 교재는 41 18467 6334 이렇게 수마다 띄어서 나오는데..제꺼는 왜 연속적으로 붙어서 나오나요?? 맨첫번째 문장 말하는 겁니다. 그리고 3번째 문장 경우 seed를 설정해놔서 매번 다르게 출력되는데,, 위의 2개는 이론대로 고정된 수가 나옵니다. 근데 이 rand 함수 안에서 어떤 숫자를 출력하라고 지정되어 있나요?? 왜 같은 수가 출력되는거죠??
-
봄시내 2023-09-12
제 질문에 대한 답변좀 해주세요....
-
고양이 2023-09-12
제비뽑기할때 빨리뽑는다고해서 더 정확한건 아니에요
-
뽀대미녀 2023-09-12
같은 프로그램이 동시에 여러번 실행되지 않는이상
프로그램 초기에 srand( (unsigned) time(null) );함번 호출하는걸로
족합니다 -
이름없음 2023-09-12
windows.h파일추가하시고
srand(GetTickCount())해보세요
더 정확함.