wjdwwidz_c   2년 전

float으로 했다가 이게 문제일까 싶어서 double로도 바꿔봤는데도 통과가 안 됩니다

뭐가 문제일까용?

slah007   2년 전

float, double 등은 부동소수점 오차때문에 50이라는 수를 저장할 때 49.9999999나 50.0000001이 되는 등 정확히 나타내지지 못합니다

즉 평균이 50이고 점수가 50이면 원래 넘지 못하지만 49.999999로 저장되었다면 50>49.99999가 성립되게 됩니다.

즉 이런 비교 연산을 해야할 경우 a>b/n 보다는 a*n>b로 정수 연산만 사용하는것이 타당합니다.

같은 이유로 5~10줄에서 개수를 float로 저장하면 실제 값보다 한번 적게 for문을 돌게 될 가능성이 있고 애초에 개수에는 float를 사용할 필요가 없습니다.

wjdwwidz_c   2년 전

안녕하세요 말씀주신대로 입력받는 테스트 갯수의 수를 int 형으로 바꾸고, if 문 안에 들어가는 연산도 *형태로 바꾸었습니다.

(덕분에 실수형,정수형의 / 개념도 다시떠올려보는 계기가 되었습니다 감사합니다 (--)(__))...

마지막 result 에 들어가는 /연산은 출력형도 double이고, cnt를 double 로 형변환 해주었기 때문에 큰 문제가 없을 것 같아 /를 그대로 놔두었는데요, 아직 통과가 안 됩니다ㅜㅜ

어디를 더 고쳐야 할까요?

preview

wjdwwidz_c   2년 전

fseek이랑 define구문 없앴더니 해결됐습니당 혹시 더 보시는 분 계실까봐 남기고가요!

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