성적에서 등수 구하기
해리
2023.04.01
소스와 실행파일을 첨부하였구요
rank 함수를 불러오는데 계산이 제대로 안되서 그렇습니다
평균을 가지고 등수를 계산하게 됩니다
이때 rank 함수를 호출하며 rank는 int값을 리턴하고 그 리턴한값을 등수에 출력하는겁니다
그런데 보다시피 ID 1번의 등수와 ID 2번의 등수가 좀 이상하죠...
평균값이 틀린데...
ID 1번은 8등을 출력해야 되는데
저렇게 잘못 출력이 되네요..
왜 그런걸까요 ㅜㅜ
정상적으로 출력이 될때도 있습니다..
그렇다면 성적을 구할수 있는 값을 7~8개 정도 입력해보세요 ㅜㅜ
-
이든샘
원인을 찾았습니다.. 소수점을 비교하는 부분에서 문제네요..
합계로 처리하면 잘된느군요
컴퓨터는 소숫점 처리를 제대로 못해서 발생하는 문제라고 하네요.. -
스콜피온
점수를 모두 같게 하면 모두 1등이 나옵니다 ㅜㅜ
그리고 아래 답변처럼 변수를 생성해서 했었는데도 똑같더군요.. -
가을빛
rank 함수에
if ( avg (float)(search-kor+search-eng+search-math)/3.0 ) 이부분에서 문제가 있네요.
float avg1 = (float)(search-kor+search-eng+search-math)/3.0;
if (avg avg1 )
바꿔서 해보세요.
정수 비교를 하는거 같네요. 정확히는 저도 잘 모르겠습니다. -
해까닥
모두 점수를 같게 해서 모두 1등이 나오는가를 검사해 보시길 바랍니다.