포인터 질문입니다.
글쓴이: hopeone / 작성시간: 일, 2004/09/26 - 2:57오후
포인터로 할려다가 잘안되서요
배열로 바꿔봤는데요.
아래와 같이 했는데..
a[i] 에 값이 6개가 다 같은수로 나오네요..
다시 뽑을거같은데 같은거만 뽑네요
#include <stdio.h> #include <math.h> #include <stdlib.h> #include<time.h> void main(){ for (i=0; i<=6; i++){ srand( (unsigned)time( NULL ) ); a[i]=rand()%10+1; printf ("%d\t%d\n", i, a[i]); } }
Forums:
c가 미리 할당 되어 있다면,[code:1]*c = rand&
c가 미리 할당 되어 있다면,
하시면 되겠습니다만,
rand() 함수에 의해서 넘겨지는 값이 어딘가에 저장된 게 아닌, 임시로 넘겨지는 값이기 때문에 저장할 공간이 필요합니다. 그냥 주소를 구한다면 그 주소에 있는값은 언제 바뀔 지 모르는 것이죠.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
printf 다음에 sleep(1)을 넣어 보세요..srand는
printf 다음에 sleep(1)을 넣어 보세요..
srand는 프로세스가 시작되면 한번만 부르는 것이 올바른 (?) 방법입니다.
srand에 넘어가는 값에 따라서 항상 일정한 rand() 의 순서가 정해진다고 생각하시면 됩니다
---
http://coolengineer.com
srand()를 for문 밖으로 빼내세요...
srand()를 for문 밖으로 빼내세요...
게으름은 이제 그만
srand() 함수는 주어진 시드값으로 난수열을 초기화하는 함수이므로,
srand() 함수는 주어진 시드값으로 난수열을 초기화하는 함수이므로, 주어지는 시드값이 같으면 언제나 같은 난수열이 나옵니다.
time() 함수의 결과값은 같은 초 내에서는 같은 결과가 나오므로, (unsigned)time( NULL )의 결과값은 1초 동안은 항상 같은 결과가 나오게 됩니다. 동일한 시드값으로 초기화를 한 다음에 rand() 함수를 호출하면 항상 같은 숫자가 나오는 것은 당연합니다. 따라서 srand 함수는 한번만 호출하는 것이 맞습니다.
댓글 달기