왜 무한루프가 될까요?......................
에드윈
C언어 초보입니다! 읽어주셔서 감사합니다.
질문 제목 : 왜 무한루프가 될까요?질문 요약 :모 책자에 있는 숫자맞추기 게임을 만들어보고있는데요.
컴퓨터가 생성한 난수를 사람이 입력해가면서 맞추는 부분은 쉽게 되는데
사람이 문제를 내고, 컴퓨터가 맞추도록 하는 부분을 하려다 막혔습니다..;
ex)
제가 10 이라는 문제를 냈고. 컴퓨터가 문제를 맞춰가는 방식또한 랜덤값으로 하여, 15라는 수가 나왔다면
15에 대한 힌트로 제가 그보다 아래값! 이란걸 출력하게 됩니다. (물론 컴퓨터가 이런걸 보는건 아니지만)
그리고 컴퓨터는 이 힌트를 조건으로.. 15이하의 값이 나올때까지 반복해서 다시 랜덤값을 뽑도록 만드는 방식으로
풀려고 했습니다만 무한루프에 빠지네요.
while속에 while을 써서 그런가요...? 탈출 조건도 있는데 if문까지 들어와서 puts문이하를 수행하지 않네요
continue도 해봤는데...ㅋ;
소스는 아래에 첨부하겠습니다..
// 알아보기 힘드시면 죄송..ㅠ;질문 내용 : #include stdio.h
#include time.h
void main ( void )
{
int answer, input, cnt=1, com, com2; // answer case2에서 컴퓨터가 내는 문제의 답을 저장
int p, problem; // p = case 분기용 변수 / problem = 사용자가 내는 문제의 답을 저장
srand((unsigned)time(NULL));
answer = rand()%100+1; // 2번의 컴퓨터가 내는 문제의 답을 저장하는 변수.
puts(1또는 2 입력. 1: 사용자가 입력하고 컴퓨터가 맞추기. \n2: 컴퓨터가 입력하고 사용자가 맞추기 );
scanf(%d, &p);
switch(p)
{
case 1:
puts(문제를 냅니다... : );
scanf(%d, &problem);
com = rand()%100+1; // 컴퓨터가 첫번째 정답 추출.
com2 = com; // 비교를 위한 변수.
while(1)
{
if(com == problem)
{
puts(컴퓨터가 정답을 맞추었습니다.);
break;
}
else if(problem com){
puts(그보다 아래 값! );
while(com = com2){ // com이 더 크므로, 더 작은 값을 받아야한다. com2=com의 복사값. 조건 만족시까지 반복
com = rand()%100+1; // 이게 while속 while이 이상한가해서 if로 해서..-; 도 해봤는데 안되더라구요.
}
}
else if(problem com){
puts(그보다 위 ! );
while(com = com2){
com = rand()%100+1;
}
}
}
//////////////// case 2 는 문제 없어요'
case 2:
while(1)
{
printf(%d번째 시도 : , cnt);
scanf(%d, &input);
if(answer == input)
{
puts(정답입니다 ^^!);
break;
}
else if(answer input)
puts(그보다 아래 ! );
else
puts(그보다 위 ! );
cnt++;
}
}
}
-
지우개
아하 ㅋ
-
푸른마을
com2 가 첨에 한번바뀌고 그대로 잖아요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |