반응형
Lotto 번호 무작위 추첨하는 프로그램 구현하기 2
(1~45까지의 번호를 섞은 후, 차례로 7개의 숫자를 뽑아 Lotto 번호 결정하기)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int lotto[45];
srand(time(NULL)); // seed 값을 변경해준다. (현재시간(초)을 리턴해준다)
for(int i = 0; i < 45; ++i)
lotto[i] = i + 1; // lotto[] 배열에 1 ~ 45의 숫자를 차례로 저장한다.
for(int i = 0; i < 10000; ++i){ // lotto[45]에 저장된 45개의 값들을 섞는다.
int index1 = rand() % 45; // 서로 값을 교환할 index의 값을 rand()로 뽑아낸다.
int index2 = rand() % 45; // 0 ~ 44까지의 난수를 발생시킨다.
int tmp = lotto[index1]; // lotto[index1]의 값과 lotto[index2]의 값을 swap한다.
lotto[index1] = lotto[index2];
lotto[index2] = tmp;
}
for(int i = 0; i < 7; ++i)
printf("%3d ", lotto[i]);
printf("\n");
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] swap 2 (전역 변수) (0) | 2021.07.20 |
---|---|
[C언어] swap 1 (포인터) (0) | 2021.07.19 |
[C언어] 실습: Lotto 번호 무작위 추첨하는 프로그램 구현하기 1 (7개의 번호 rand() 함수로 뽑아내기) (0) | 2021.07.17 |
[C언어] 실습: Baseball Game 프로그램 구현하기 (0) | 2021.07.15 |
[C언어] rand() (0) | 2021.07.13 |