괴발개발 개발하다
[ C언어 ] 로또 프로그램(배열 사용) 본문
1. 코드
/*
컴퓨터가 로또번호를 만든다. 중복되는 숫자는 없게.
사용자가 6개의 숫자를 입력한다.
결과를 출력해준다.
*/
#include <stdio.h>
#include <time.h>
int main(void)
{
int lotto[45]={0};
int select[45]={0};
int i,choice,game=0,count=0,choicecount=0,lottocount=0,playercount=0,matchcount=0,end;
srand((unsigned)time(NULL));
printf("====로또 당첨 기원====\n");
while(1){
for(i=0;i<6;i++){ //로또 배열에서 임의로 뽑은 배열의 요소에 1을 대입.
lotto[rand()%46]=1;
}
printf("%d차 시도!\n",game+1);
while(choicecount < 6){ //사용자에게서 로또숫자 6개 입력.
printf("%d번째 번호 입력.",choicecount+1);
scanf("%d",&choice);
fflush(stdin);
if(choice>46 || choice<1){ //입력오류시 반복
printf("\n1에서 45까지의 수를 입력해주세요.\n");
continue;
}
if(select[choice] == 1){ //이미 입력한 숫자인지 체크
printf("이미 입력한 숫자입니다.\n");
continue;
}
select[choice] = 1; //입력이 정상이면 해당 배열을 1로 바꾸고 카운트 증가.
choicecount++;
}
/* 컴퓨터가 고른 배열 확인
count = 0;
for(i=0;i<46;i++){
printf("%d",lotto[i]);
}
*/
printf("컴퓨터가 고른 번호는");//컴퓨터 배열에서 1일 요소를 찾아 표시
for(i=0;i<46;i++){
if(lotto[i] == 1){
printf(" %2d",lottocount);
}
lottocount++;
}
printf("\n");
printf("당신이 고른 번호는 ");//사용자 배열에서 1인 요소를 찾아 표시
for(i=0;i<46;i++){
if(select[i] == 1){
printf(" %2d",playercount);
}
playercount++;
}
printf("\n");
for(i=0;i<46;i++){ //두 배열을 비교해 당첨 결과 확인
if(select[i] != lotto[i]){ //틀릴때마다 카운트가 증가.
matchcount++;
}
}
game++;
if(matchcount==0){ //카운트가 0이면 전부 동일하다는 뜻
printf("축하합니다! 1등에 당첨되셨습니다.");
break;
}else if(matchcount==1){
printf("축하합니다! 2등에 당첨되셨습니다.");
break;
}else if(matchcount==2){
printf("축하합니다! 3등에 당첨되셨습니다.");
break;
}else if(matchcount==3){
printf("축하합니다! 4등에 당첨되셨습니다.");
break;
}else if(matchcount==4){
printf("축하합니다! 5등에 당첨되셨습니다.");
break;
}else if(matchcount==5){
printf("축하합니다! 1개라도 맞추셨네요.");
break;
}else{
printf("꽝입니다. 그만하시려면 0 입력.\n");
printf("또 도전하시려면 아무 값이나 입력하세요.\n\n");
scanf("%d",&end);
if(end ==0){
break;
}
count=0,choicecount=0,lottocount=0,playercount=0,matchcount=0; //카운트변수 전부 초기화
for(i=0;i<46;i++){ //로또 배열 초기화
lotto[i] = 0;
}
for(i=0;i<46;i++){ //사용자 배열 초기화
select[i] = 0;
}
continue;
}
}
return 0;
}
2. 출력화면
====로또 당첨 기원====
1차 시도!
1번째 번호 입력.25
2번째 번호 입력.40
3번째 번호 입력.16
4번째 번호 입력.17
5번째 번호 입력.5
6번째 번호 입력.10
컴퓨터가 고른 번호는 0 13 19 24 27 32
당신이 고른 번호는 5 10 16 17 25 40
꽝입니다. 그만하시려면 0 입력.
또 도전하시려면 아무 값이나 입력하세요.
'C언어' 카테고리의 다른 글
[ C언어 ] 단어 대체하기 (0) | 2021.10.12 |
---|---|
[ C언어 ] 간단 키오스크 만들기 (0) | 2021.10.11 |
[ C언어 ] 간단 도서관리 프로그램(입력, 출력, 종료 메뉴) (0) | 2021.07.08 |
[ C언어 ] 랜덤 숫자 생성 - 숫자 1개 맞히기 프로그램 (0) | 2021.07.08 |
[ C언어 ] 주사위 무작위 숫자 누적 코드 (0) | 2021.07.04 |