#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 45 //상수 선언
void setlotto(int *lotto);
void iswin(int *mylotto, int *lotto);
int main(void)
{
int i, j;
int mylotto[6], lotto[6];
printf("\n");
printf(" < 로또게임 >\n");
printf("\n");
printf("1부터 45까지의 숫자 중 본인이 원하는 로또번호 6개를 입력하시오.");
printf("\n");
printf("-> ");
for(i=0; i<6; i++)
{
scanf("%d", &mylotto[i]);
for(j=0; j<i; j++) // 기존에 입력된 번호와 비교해서
if(mylotto[i]==mylotto[j]) // 같은 번호가 나오면
{
printf("이미 입력된 번호입니다. 다시 입력하세요.\n");
i--; // 다시 입력 받습니다.
break;
}
}
setlotto(lotto);
iswin(mylotto, lotto);
return 0;
}
void setlotto(int *lotto)
{
int i, j, t;
long seed = time(NULL);
srand(seed);
printf("\n");
printf("로또를 추첨합니다.\n");
printf("\n");
for(i=0; i<6; i++)
{
lotto[i] = rand() % MAX + 1;
for(j=0; j<i; j++) // 기존에 입력된 번호와 비교해서
if(lotto[i]==lotto[j]) // 같은 번호가 나오면
{
i--; // 다시 입력 받습니다.
break;
}
}
for(i=1; i<6; i++) // 버블정렬 알고리즘
for(j=0; j<6-i; j++) // 인접한 두 숫자를 차례대로 비교해서
if(lotto[j]>lotto[j+1]) // 뒤에 숫자가 더 작으면 교환하는 오름차순
{
t=lotto[j];
lotto[j]=lotto[j+1];
lotto[j+1]=t;
}
for(i=0; i<6; i++) printf("%4d",lotto[i]); // 정렬된 결과를 출력합니다.
printf("\n");
}
void iswin(int *mylotto, int *lotto)
{
int i, j, same = 0;
for (j=0; j<6; j++)
for (i=0; i<6; i++)
if (mylotto[i] == lotto[j])
same++;
if(same == 6) {
printf("6개 맞췄어요.\n");
}
else if(same == 5) {
printf("5개 맞췄어요.\n");
}
else if(same == 4) {
printf("4개 맞췄어요.\n");
}
else if(same == 3) {
printf("3개 맞췄어요.\n");
}
else if(same == 2) {
printf("2개 맞췄어요.\n");
}
else if(same == 1) {
printf("1개 맞췄어요.\n");
}
else {
printf("하나도 못 맞췄어요.");
}
'IT > C++' 카테고리의 다른 글
[C++] 버블정렬 알고리즘을 통한 오름차순 정렬 예제 (0) | 2017.06.05 |
---|---|
[C++] 주사위 게임 예제 (0) | 2017.06.05 |
[C++] define 입력값을 받아 합계와 평균을 구하는 성적 프로그램 (0) | 2017.06.05 |
[C++] 가위바위보 프로그램 예제(rand) (0) | 2017.06.05 |
[C++] 동전의 앞면 및 뒷면 판단 예제(rand) (0) | 2017.06.05 |