rand()로 로또프로그램을 짰는데 숫자가 다 똑같이 나와요ㅜㅜ
하양이
2023.04.01
이제 막 배열 배우고있는 학생입니다. rand() 함수 써서 임의의수가 나오게 하는 프로그래밍인데여(중복상관X)
밑에는 소스구여 컴파일 하면 같은 숫자만 6개 나오는데 왜그런거죠?
#include stdlib.h
#include stdio.h
#include time.h
int main()
{
int lotto[6];
int n;
for (n=0; n6; n++)
{
srand(time(NULL));
lotto[n] = rand() % 45+1;
}
for (n=0; n6; n++)
printf(%6d %6d\n, n+1, lotto[n]);
return 0;
}
-
김자영
srand 함수를 for문 위로 올리세요.
for문이 너무 빨리 돌기 때문에 time 함수가 미쳐 다른 값을 반환하지 못하고,
srand 함수로 rand 함수를 계속 똑 같은 값으로 초기화하기 때문입니다. -
이솔
감사합니닿ㅎㅎ낼컴터로해바야겟네영
-
달콤이
rand함수는 어떠한 숫자를 기준으로 매우복잡한 공식을통하여 난수 흉내를 냅니다. 따라서 그 기준이되는 숫자를 바꿔주면 다르게 나옵니다. 그러한 함수가 srand이고 일반적으로 srand(time(NULL)); 이런식으로 사용합니다.time함수는 시간을 리턴해주는 함수로 시간은 지속적으로 변하니 계속해서 기준이되는 숫자가 변하고 따라서 완전한 난수처럼 보이게됩니다. time 함수는 time.h해더에 선언되어 있습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2698967 | 파일삭제 윈도우 폴더까지 접근하게하는 함수가 뭔가요 (2) | 샤인 | 2025-06-21 |
2698938 | c언어 메모리질문 (3) | 나래 | 2025-06-21 |
2698909 | 서비스 요청 고객 관리 프로그램 짜는것좀 도와주세요ㅜㅜ (4) | 궁수자리 | 2025-06-21 |
2698882 | 프로그래밍좀 짜주세요 (3) | 황예 | 2025-06-21 |
2698855 | 카프-라빈 알고리즘 코딩 분석좀 도와주세요.. | 꽃봄 | 2025-06-20 |
2698829 | 학점계산기 (7) | MyWay | 2025-06-20 |
2698782 | 기초적인 함수 질문이요ㅠㅠㅠㅠ | 내담 | 2025-06-20 |
2698749 | 프로그램 짜던 도중 패닉입니다...ㅜ | 파랑 | 2025-06-19 |
2698719 | 조건부컴파일 질문입니다.~ (2) | 큐트 | 2025-06-19 |
2698693 | 재귀 함수 에러 | 바닐라 | 2025-06-19 |
2698673 | 고민이있는데 들어좀주세요!! (1) | 초코맛캔디 | 2025-06-19 |
2698644 | 1부터 n까지의 합을 구하는데 엄청긴숫자의 합을 구할때는 어떻게 해야하나요? (4) | 슬우 | 2025-06-18 |
2698616 | 다른 함수로 안넘어갑니다..;;; | 도1도캣 | 2025-06-18 |
2698587 | 배열하다 막혀서... (3) | WhiteCat | 2025-06-18 |
2698559 | 문자열을 비우는방법 (2) | 하늘 | 2025-06-18 |
2698528 | 착하고 친절한 선생씌구해염~ㅋㅋ (4) | 옆집언니야 | 2025-06-17 |
2698502 | 자료구조 큐 | 캔서 | 2025-06-17 |
2698477 | 실행화면 배경문의요 | 선아 | 2025-06-17 |
2698430 | 변수의 값이 저장이 않되네요;; (4) | 피네 | 2025-06-16 |
2698404 | C#을 배울려고 하는데 C나 C++을 알아야 하나요 ?? (1) | 신당 | 2025-06-16 |