exit문으로 프로그램 종료가 되지 않습니다.
개럭시
질문 제목 :exit문으로 프로그램 종료가 되지 않습니다.exit문으로 프로그램 종료가 되야하는데, 종료가 되지않고 루프만 탈출합니다.질문 내용 : 야구게임을 전에 goto문으로 작성했었는데, goto문 없이 작동되게 바꿔봤습니다.for문으로 돌다가 조건 만족시 exit로 아예 종료하게 코딩을 했습니다.문제는, 프로그램 종료가 아닌 그 for문 탈출이 됩니다.초기의 무한루프로 설정해놓은 for문까지 탈출을 원했지만, 그리 되지 않더군요.
// c.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//#include stdafx.h
#include stdlib.h
#include time.hint _tmain ( int argc , _tchar* argv[] )
{
printf ( game start\n ) ; for ( ; ; )
{ srand ( time ( null ) ) ;
int rand = rand () * 17 % 1000 ;
int r1 = rand / 100 ;
int r2 = rand % 100 / 10 ;
int r3 = rand % 10 ; int input ;
int n ; if ( ! ( rand 1000 || rand 100 || r1 == r2 || r2 == r3 || r3 == r1 ) )
{ for ( n = 1 ; n 5 ; n++ )
{
printf ( swing = ) ;
scanf ( %d , &input ) ;
int i1 = input / 100 ;
int i2 = input % 100 / 10 ;
int i3 = input % 10 ; if ( ! ( input 1000 || input 100 || i1 == i2 || i2 == i3 || i3 == i1 ) )
{ int s = 0 , b = 0 ; if ( i1 == r1 )
s++ ;
if ( i2 == r2 )
s++ ;
if ( i3 == r3 )
s++ ;
if ( i1 == r2 )
b++ ;
if ( i1 == r3 )
b++ ;
if ( i2 == r1 )
b++ ;
if ( i2 == r3 )
b++ ;
if ( i3 == r1 )
b++ ;
if ( i3 == r2 )
b++ ; if ( s == 3 )
{
printf ( you win!\n ) ;
exit ( 0 ) ;
} else if ( n == 5 )
{
printf ( %d strike %d ball\n , s , b ) ;
printf ( you lose!\n ) ;
exit ( 0 ) ;
}
else
{
printf ( %d strike %d ball\n , s , b ) ;
}
}
}
}
}
}
-
으뜸
return 0; 써도 종료될 것 같네요.
-
나미
for ( n = 1 ; n = 5 ; n++ )
로 바꿨더니, 아무 문제없이 제대로 돌아가네요.
감사합니다! -
라온제나
우선 if(s==3) 위에 exit(0);을 넣어봐서 제대로 되는지 확인해보시길 바랍니다. for(n=1;n5;n++) 이렇게 반복을 하는 동안에는 n의 값이 5가 되는 경우는 없습니다. 1 2 3 4 이렇게 4번 반복합니다.
-
츄릅
signal(SIGKILL,SigExit); ...??