2015136077   4년 전

자꾸 출력초과로 실패하는데 도무지 어떤부분에서 출력이 초과되는지 알 방도가 없습니다.

지식인에도 물어봤는데 코드 그대로 복붙하면 AC된다하는데 혹시 언어상의 문제인지 모르겠어요.

어느 부분에서 초과하는지 알려주실 수 있으신가요.

bupjae   4년 전

checked_grade 함수는 int 를 반환하기로 약속해놓고 실제 반환값이 없습니다.

이런 프로그램의 실행 결과는 정의되지 않았습니다. (undefined behavior)

   

gcc 에서 -O2 옵션을 주고 실행한 결과 이 프로그램은 21~23번째 for 반복문을 *매우 많이* 반복하고 있었습니다.

다른 컴파일러 혹은 다른 옵션을 사용한다면 전혀 다른 결과가 나올 수 있습니다.

   

checked_grade 함수의 반환값을 int 대신 void 로 선언하면 올바른 프로그램이 되며, 이런 문제는 발생하지 않습니다.  

2015136077   4년 전

지금보니 완전 개판이였네요. 알려주셔서 감사합니다.

댓글을 작성하려면 로그인해야 합니다.