이 함수는 구조체에 저장된 두 분수를 비교합니다. 분수 L = 분수 R이 0을 반환하면 L> R이면 R> L이 -1을 반환하면 1을 반환합니다. 지금 여기에 내가 가지고있는 코드입니다 : 나는 다음 테스트를 실행할 때분수를 구조체로 비교
int compare_fractions(Fraction L, Fraction R)
{
double z = (L.numer/L.denom) - (R.numer/R.denom);
// THIS CODE IS INCORRECT - FIX IT!
if(z == 0)
return 0;
else if(z < 0)
return -1;
else if(z
return 1;
}
그러나 나는 공의는 다음 비교에 나타납니다
(1,3) ? (2,3)
(5,6) ? (3,4)
(2,4) ? (1,4)
곳 (1,3) 분수 L과 (2, 3) 분수 R입니다. 미리 감사드립니다!
그리고 z가 0 인 테스트는 나쁘다. http://stackoverflow.com/questions/19837576/comparing-floating-point-number-to-zero – Throwback1986