Rational number

This is a program in tanennmbaum book data structures, I think the code is incorrect because outrat->numerator/=a; invalid because it does not matter assigned to him, please correct me if i is wrong. Please correct the code.

 #include <iostream.h> #include <conio.h> #include <stdio.h> struct rational { int numerator; int denominator; }; void reduce(struct rational *inrat, struct rational *outrat) { int a, b, rem; if (inrat->numerator > inrat->denominator) { a = inrat->numerator; b = inrat->denominator; } else { a = inrat->denominator; b = inrat->numerator; } while (b != 0) { rem = a % b; a = b; b = rem; } outrat->numerator /= a; outrat->denominator /= a; } int equal(struct rational *rat1, struct rational *rat2) { struct rational r1, r2; reduce(rat1, &r1); reduce(rat2, &r2); if (r1.numerator == r2.numerator && r1.denominator == r2.denominator) return 1; return 0; } int main() { struct rational rn1, rn2; int k; rn1.numerator = 5; rn1.denominator = 10; rn2.numerator = 1; rn2.denominator = 2; k = equal(&rn1, &rn2); cout << k; getch(); return 0; } 
+4
source share
1 answer

Replace the corresponding lines:

 outrat->numerator = inrat->numerator / a; outrat->denominator = inrat->denominator / a; 
+2
source

Source: https://habr.com/ru/post/1387664/


All Articles