C++2007. 5. 30. 22:39
 

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

 

#define MAX 6         // 숫자를 뽑아내는 갯수입니다.

#define LOTTO 46     // 뽑히는 숫자의 최대치 입니다.

                             

 

void main()
{
    int num[MAX];
     int i, j, temp;
     char ch;

 

     srand((unsigned)time(NULL));   // rand() 함수를 초기화 시킬때 필요한 구문입니다.

                                                  // 자세한 작동원리는 저도 모름 -,.-;; 아시는 분은 덧글로 좀..
 
    for(i = 0; i < MAX; i++)
    {
         temp = rand() % LOTTO + 1;         // rand() 함수는 상당히 넓은 범위로 정수를 생성하므로

                                                  // 어떤 범위 내에서 숫자를 생성하고 싶을땐 범위의 최대값으로

                                                  // 나눈 나머지를 받도록 하면 됩니다. 이렇게 하면 0~45사이이기

                                                  // 때문에 1을 더 해주면 범위가 1~46이 되는거죠.

        

        for(j = 0; j < MAX; j++)
         {
                if(temp == num[j])        
// rand() 함수에 의해 뽑힌 숫자가 num배열상 존재하는 숫자와
                {                                // 같은 숫자라면 다시 rand()함수를 호출하고 그렇지 않으면

                       i--;                      // 배열에 숫자를 넣은뒤 다음 배열로 넘어갑니다.
                       break;
                 }
               

                else
                {
                       num[i] = temp;
                       break;
                 }
          }

     }

     for(i = 0; i < MAX; i++)
     {
          printf("%d ", num[i]);
     }

     printf("\n");
     printf("엔터를 치시면 종료됩니다...");
     scanf("%c", &ch);

}

Posted by 타망

댓글을 달아 주세요