glow153   7년 전

소스가 조금 난잡합니다...

원리는 입력된 이진수 스트링의 맨 뒤에서부터 3자리씩 가져와서 8진수로 바꾼 값을 oct[]의 맨 뒤에서부터 채워넣는 거거든요

왠만한 테스트케이스는 다 넣어봤는데 자꾸 틀리다고 나와서요 ㅠㅠ

조언을 구합니다!

chogahui05   7년 전

입력 : 10000

출력 : 10

답 : 20

===============

입력 : 11001

출력 : 14

답 : 31

glow153   7년 전

chogahui05님 

제 컴에서는 정답대로 잘 나오는데요?ㅠㅠ

chogahui05   7년 전

알고리즘 자체는 맞은 거 같아요~

문제는. fgets를 잘못 이해하고 계시다는 건데요.

C의 fgets의 입출력 종료 조건은 다음과 같습니다.

1. 개행 문자를 입력받았을 때

2. 버퍼 크기 - 1만치 입력 받았을 때

3. EOF를 읽었을 때. (End of File)


3인 경우가 문제입니다. (1)에 대해서만 테스트를 하신 거 같으신데요.

EOF에 대해서 찾아보시는 걸 추천드립니다~

chogahui05   7년 전

https://www.tutorialspoint.com...

fgets로 입력받을 때, 항상 개행이 문자열 맨 끝에 온다고 생각하시면 안 됩니다.

glow153   7년 전

chogahui05 

그렇군요 꼼꼼하지 못했습니다! 감사합니다!~ bb

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