limd123   2년 전

25번 째 줄을 while(start<end){ 으로 바꾸면 divisionbyzero 오류가 뜹니다. 일단 start<=end 를 start<end로 바꾼다고 start값이 이상한게 나오는 오류가 발생하지는 않을 것 같고 더욱이 0으로 나누는 상황은 time 배열로만 나누기 때문에 나올 수가 없을 것 같은데 왜 이런 오류가 뜨는 것일까요?

djm03178   2년 전

반례는 생각해보지 않았으나 한 가지 생각해 볼 가능성이 있는 곳은 43번째 줄입니다. 만일 sum이 잘못 계산된 것 때문에 k가 너무 커진다면 42번째 줄의 루프가 너무 많이 돌면서 c가 m보다 많이 증가한다면 time[c]가 입력받은 범위를 벗어나게 될 수 있습니다.

limd123   2년 전

그럼 start<end으로 고치면 start 값이 잘못 나올 가능성이 생기고 그래서 sum값도 잘못 나올 수 있다는 말씀이신가요

djm03178   2년 전

네, 실제로 43번째 줄 전에 c >= m 조건문을 넣어보면 걸려드네요.

limd123   2년 전

감사합니다.

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