로또 실험하는 프로그램입니다. 많은 오류가 있네요
일본어못해요
질문 제목 : 로또 실험하는 프로그램입니다. 많은 오류가 있네요로또 프로그램을 만들어 보았는데 다양한 오류가 있네요질문 내용 : 로또 프로그램을 만들어 보았습니다. 하지만 코드를 만들어 보고 난 후 실행 시키니 많은 문제가 발생했습니다.
이것이 제 코드입니다
#include stdio.h
#include stdlib.h
#include time.h
#define lotto_count 6
int main()
{
int user_lotto[lotto_count], lotto_num[lotto_count];
int i,j,k,count;
int flag = 0;
srand(time(null));
while(flag != -1)
{
system(cls);
count = 0;
printf(로또 번호 입력(6개) : );
scanf(%d,%d,%d,%d,%d,%d, &user_lotto[0], &user_lotto[1], &user_lotto[2], &user_lotto[3], &user_lotto[4], &user_lotto[5]);
for(i = 0; i lotto_count; i++){
lotto_num[i] = (rand() % 45) + 1;
}
for(i = 0; i 5; i++){
for(j = i + 1; j lotto_count; j++){
if(lotto_num[i] == lotto_num[j]){
lotto_num[i] = (rand() % 45) + 1;
i = 0;
}
}
}
for(k = 0; k lotto_count; k++){
if( (user_lotto[k] == lotto_num[0]) || (user_lotto[k] == lotto_num[1]) || (user_lotto[k] == lotto_num[2]) ||
(user_lotto[k] == lotto_num[3]) || (user_lotto[k] == lotto_num[4]) || (user_lotto[k] == lotto_num[5]) ){
count++;
}
}
printf(로또번호 추첨 결과 == %d %d %d %d %d %d \n\n, lotto_num[0], lotto_num[1], lotto_num[2], lotto_num[3], lotto_num[4], lotto_num[5]);
printf(%d개 맞았습니다. 당첨금은 ,count);
switch(count){
case 6:
printf(천만원 입니다);
break;
case 5:
printf(백만원 입니다);
break;
case 4:
printf(십만원 입니다);
break;
case 3:
printf(오천원 입니다);
break;
default:
printf(없습니다);
}
printf(\n\n게임을 그만두시려면 -1을 입력해주세요 : );
scanf(%d,&flag);
}
system(pause);
return 0;
}
처음 번호 입력 후 그림입니다. 여기까진 문제가 없어 보입니다
하지만 2번째로숫자를 입력하고 엔터를 누르면위의 두 사진과 같이 뜨면서 무한 반복을 합니다. 로또 번호 추첨 결과 옆의 숫자 6개가 바뀌면서 계속 뺑뺑이를 돕니다.
그리고 가끔씩 중복된 결과도 나오더군요
아쉽게도 중복된 결과는 100번 정도 했는데 나오지가 않아 캡쳐를 하지 못했습니다. 중복된 것이 나온 것은 코드를 실행하다 우연히 봤지만 무한반복을 타다보니 넘어가버렸습니다.
이 게임의 조건으로는
로또 번호를 입력할 때 번호간의 구분을 ,로 하는 것과 -1을 입력하기 전까지 계속적으로 로또 실험을하는 것입니다.
도데체 어떻게 수정하면 로또에 중복이 없고 2번째 실행 부터는 반복이 일어나지 않게 할 수 있을까요?
-
팬지
계속하시겠습니까? 로 묻는데 거기다가 6개의 번호를 집어넣고 있네요.
중복은 랜덤수를 다른 랜덤수와 비교해서 같으면 다시 뽑을 수 있게
반복문에서continue; 등으로 다시 랜덤을 돌리면 되겠죠.