숫자야구 소스코드 문제점 파악좀 해주세요
지율
학교에서 과제물로 특정 조건을 만족하는 숫자야구 게임을 프로그래밍해오라고 과제가 나왔습니다. 학교에서 배운데 까지만 응용해서 만드는거라 다른사람 소스를 보며 원리를 이해하고 제 나름대로 소스를 짰는데 빌드는 성공이라고 하는데요 막상 실행하면 결과값이 이상하게 나옵니다 ㅠㅠ문제점 파악좀 부탁드려요 ㅠㅠ#include stdio.h
void main()
{
int a, b, c; //메뉴 1번에 정의될 값들
int x, y, z; //메뉴 2번에서 정의될 값들
int S=0, B=0, O=0; //S는 스트라이크, B는 볼, O는 아웃
int chance=10; //기회
int m; //실행될 메뉴 번호
menu:
printf(***********************\n);
printf( 1. 숫자입력 \n);
printf( 2. 게임시작 \n);
printf( 3. 종 료 \n);
printf(***********************\n);
printf(\n);
printf(메뉴 선택 : );
scanf(%d, &m);
if(m==1)
{
printf(0~9까지의 서로다른 숫자를 입력해주세요.. 중복이 되지않도록 입력해주세요.\n);
printf(숫자를 입력하고 나서 엔터를 누르면 메뉴로 돌아갑니다 그 후 2번을 눌러 게임을 시작하세요.\n);
printf(상대방이 맞출 숫자를 입력해주시고 반드시 띄어쓰기를 해서 입력해주세요 : );
scanf(%d %d %d, &a, &b, &c);
goto menu;
}
if(m==2)
{
printf(게임을 시작합니다.\n);
printf(기회는 총 9번이며 3 Strike가 나올시엔 메뉴로 돌아갑니다.\n);
printf(맞출 숫자를 입력해주시고 이것 역시 띄어쓰기를 해주세요.\n);
printf(\n);
if(a0 || a9 || b0 || b9 || c0 || c9)
{
printf(Warning! 잘못된 숫자를 입력하셨습니다. 메뉴로 돌아가 1번부터 다시 진행해주세요.\n);
goto menu;
}
do{
chance--;
printf(%d 번 남았습니다.\n, chance);
printf(숫자를 입력해주세요 : );
scanf(%d %d %d, &x, &y, &z);
if(x==a || y==b || z==c)
{
S=S+1;
printf(%d Strike !, S);
if(x==b || x==c)
{
B=B+1;
printf(%d Ball !, B);
}
if(y==a || y==c)
{
B=B+1;
printf(%d Ball !, B);
}
if(z==a || z==b)
{
B=B+1;
printf(%d Ball !, B);
}
if(x!=a && y!=b && z!=c)
{
O=O+1;
printf(%d Out !, O);
}
}
if(S==3)
printf(%d Strike ! 메뉴로 이동 합니다!\n, S);
goto menu;
if(x==a && y==b && z==c)
printf(%d Strike ! 메뉴로 이동 합니다!\n, S);
}while(chance==0);
}
}
실행결과가 예를들어1번에서 숫자를 1 5 9 라 지정을 하면2번에서 게임시작을 할때1 3 9 라하면 2 Strike 가 나와야하는데 1 Strike 라 출력하구요2번 게임시작에서 숫자를 입력하고 엔터를 누르면8번 남았습니다 숫자를 입력하세요7번 남았습니다 숫자를 입력하세요 이렇게 출력되기를 원하는데 계속8번 남았습니다 숫자를 입력하세요메뉴~메뉴선택 : 뜨고 2 , 엔터 누르면 7번 남았습니다 숫자를 입력하세요 이렇게 뜨네요 ㅠㅠ
-
BlackCat
스트라이크 부분을 반복문의 위치에 잘못놓은것이 아닐까요?