acruxdy   5년 전

n에 3을 입력하고, 40,80,60을 두 번째 줄에 입력했는데, 75.00이 나와야 하는데 33.00이 나옵니다. 어디서 틀렸는지 모르겠습니다.

jh05013   5년 전

예제가 제대로 안 나오는 상태에서 질문을 여러 번 올리신 것으로 기억하는데, 이 정도의 오류는 스스로 찾는 실력을 길러야 더 어려운 문제를 풀 수 있습니다. 그러므로 정확히 틀린 부분 말고 틀린 부분을 어떻게 찾는지를 알려 드리겠습니다.

average가 제대로 계산되지 않는다는 것은 sum이나 n이 잘못 계산된다는 뜻입니다. 그러므로 31줄을 printf("%d %d\n", sum, n);로 바꿔 봅시다.

n은 3으로 제대로 나오는데, sum이 100입니다.

sum이 잘못된 건 둘째치고, 뭔가 이상합니다. 100/3인데 왜 33.33이 아니라 33.00일까요? 정답은 알려드리지 않겠습니다.

sum이 잘못되었다는 것은 곧 t배열이 잘못되었다는 것을 암시하겠죠. 그러므로 31줄을 다시 printf("%d %d %d\n", t[0], t[1], t[2]);로 바꿔 봅니다.

0 100 0이 나옵니다. 확실히 t배열이 잘못되었습니다.

더 위에서 (s[l] / maximum) * 100라고 했는데, 그랬더니 원하는 값이 안 나오고 0, 100, 0이 되었다는 것입니다. 일단 s배열과 maximum은 제대로 나왔을까요? 31줄을 다시 적당한 printf문으로 바꿔서 확인할 수 있습니다.

이런 식으로 거슬러 올라가면 됩니다.

acruxdy   5년 전

넵~알려주신 방식대로 실행해 보겠습니다~~!

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