본문 바로가기

C

[C언어] 실습: Lotto 번호 무작위 추첨하는 프로그램 구현하기 2 (1~45까지의 번호를 섞은 후, 차례로 7개의 숫자를 뽑아 Lotto 번호 결정하기)

반응형

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

 

반응형