반응형

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;
}

 

<이상> 

 

반응형

+ Recent posts