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