C 언어, 로또 번호 구하는 예제 (카드 추출하기)
글. 오상문 sualchi@daum.net
로또 번호를 구하는 방법은 다양합니다.
이번 예제는 배열 사이즈를 로또 번호 범위만큼 확보하고
해당 자리가 선택되면 YES로 변경하는 방식으로 로또 번호를 구하는 예제입니다.
이 방법을 활용하면 카드 게임에서 카드를 램덤하게 선택할 수 있습니다.
다음은 예제 소스입니다.
/* C 언어, 로또 번호 구하는 예제 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define YES 1
#define NO 0
#define LOTTO_NUM_COUNT 6
// 로또 번호 1~45 확인용 배열, 초기 값은 로또 번호 아님으로 설정
// 랜덤 값을 구해서 해당 번호 위치가 NO이면 YES로 바꿈
int nums[46] = {NO, };
int main() {
int i;
int r, cnt; // 랜덤값, 개수
srand(time(NULL)); // random 함수 초기화
// 로또 번호를 구할 개수만큼 YES로 지정함
for(cnt = 0; cnt < LOTTO_NUM_COUNT; ) {
r = rand()%45+1; // 랜덤 값: 1~45
if(nums[r] == YES) // 이미 구한 자리이면 다시 랜덤 값 구함
continue;
nums[r] = YES; // 로또 번호 위치는 YES로 정하고
cnt++; // 구한 로또번호 개수 증가
}
printf("Lotto numbers: "); // 로또 번호 출력
for(i=1; i<46; i++) // 해당 자리가 YES면 로또 번호로 선택된 자리임
if(nums[i] == YES)
printf("%d ", i);
return 0;
}
<이상>
'C' 카테고리의 다른 글
윈도우 메모장에서 저장한 텍스트 파일의 한글 코드 종류 확인 (0) | 2018.07.13 |
---|---|
C 언어, 로또 번호 구하는 예제 2 (0) | 2018.07.07 |
C 언어, 순열 자료 출력하기 (0) | 2018.06.16 |
C 언어, 소수 구하기 (0) | 2018.06.12 |
[C 언어] 특정 문자열을 찾아서 다른 것으로 바꾸기 strstr() (0) | 2018.06.01 |