로또 번호 6개를 선택하고 랜덤 생성한 6개의 당첨번호와 비교
랜덤 함수를 이용하고, 입력하거나 생성된 번호는 모두 소팅한다.
#include <stdlib.h>
#include <time.h>
void input_data(int *my, int size);
void sort_data(int *my, int size);
void print_data(int *my, int size);
void input_lotto(int *lotto, int size);
int same_num(int *lotto, int *my, int size);
int main(void)
{
int lotto[6]; // 당첨번호를 담을 배열
int my[6]; // 입력한 숫자를 담을 배열
int cnt; //몇개 맞았는지 담을 변수
input_data(my, 6); // 입력받을 함수
sort_data(my, 6); //작은수부터 큰수로 쏘팅할 함수
print_data(my, 6); //숫자를 나열할 함수
input_lotto(lotto, 6); //랜덤 로또 당첨번호를 발생시켜 배열에 넣을 함수
sort_data(lotto, 6);
print_data(lotto, 6);
cnt = same_num(lotto, my, 6); // 랜덤 생성된 로또번호에서 중복되는 번호가 있지않나 확인하는 함수
printf("일치하는 번호의 수 : %d\n", cnt);
return 0;
}
void input_data(int *my, int size)
{
int i;
for(i=0;i<size;i++)
{
printf("%d번째 번호 : ",i+1);
scanf("%d",&my[i]);
printf("\n");
}
}
void sort_data(int *my, int size)
{
int i, j, temp;
for(i = 0; i < size - 1; i++)
{
for(j = i + 1; j < size; j++)
{
if(my[i] > my[j])
{
temp = my[i];
my[i] = my[j];
my[j] = temp;
}
}
}
}
void print_data(int *my, int size)
{
int i;
printf("번호 : \n");
for(i=0;i<size;i++)
{
printf("%5d",my[i]);
}
printf("\n");
}
void input_lotto(int *lotto, int size)
{
int num;
int i,j;
srand(time(0)); //include time.h 필요 --> rand()만 쓰면 같은 랜덤숫자만 나옴. 랜덤발생 기준을 바꿔줘야...그래서 쓰는 함수
for(i=0; i<size; i++)
{
num=rand() % 45 +1 ; //stdlib.h 필요
lotto[i] = num;
for(j=0; i>j; j++)
{
if(lotto[i]==lotto[j])
{
i--;
break;
}
}
}
}
int same_num(int *lotto, int *my, int size)
{
int i,j,cnt=0;
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
if(lotto[i]==my[j]) cnt++;
}
return cnt;
}
--------------------------------------------------------------------
2번째 번호 : 26
3번째 번호 : 37
4번째 번호 : 29
5번째 번호 : 13
6번째 번호 : 7
--->여기까지는 입력
번호 : --->입력번호 쏘팅
7 13 26 29 37 45
번호 : --->당첨번호
4 24 28 32 40 44
일치하는 번호의 수 : 0