반복문 종료 조건 관련(2)

dowoon7280 Reply 4 years 4 weeks ago
제출번호 189544번 프로그램을 실행해서, Sample Input인 2를 입력하면, 맨 하단에 '1.41421 < sqrt(2) < 1.41421' 이 출력되는 오류가 발생됩니다. while문 조건을 수정해서 끊어보려고 노력하였으나 변수가 실수형이여서 쉽지가 않네요;; 문제에서 출력할 때는 소수점 5째자리에서 반올림하라 해서 출력은 %.5lf를 찍는 방식으로 처리했는데, 문제 내 '반올림한 값이 최댓값과 최솟값을 반올림한 값이 같지 않을 동안 반복한다.' 에서는 몇 번째 자리에서 반올림해야 하는지 잘 모르겠습니다. Sample Input과 동일한 출력이 나오도록 예외처리를 한 제출번호 189542번 프로그램도 Wrong Answer가 떴는데, 혹시 해당 문장에서 몇번째 자리에서 반올림해서 처리하는 것이 맞는 건지, 그리고 프로그램에서 어떤 부분에 문제가 있는 것인지 알려주시면 감사하겠습니다.
withcs2 Reply 4 years 4 weeks ago
n을 반올림해서 정수로 만든 값은 floor(n+0.5)입니다. 이걸 응용해서 소수점 다섯번째 자리까지 반올림 한 값을 구해보세요 반복 조건은 출력할 때 왼쪽과 오른쪽이 같지 않을 동안 반복하면 됩니다 ceil은 반올림이 아니라 올림입니다. %lf로 출력해보면 왜 '1.41421 < sqrt(2) < 1.41421'이 나오는 지 알 수 있을거예요 이제보니 문제 문장이 매끄럽지가 않네요ㅜㅜ 문제 수정하였습니다 감사합니다