#include using namespace std; struct Fraction { int numerateur; int denominateur; }; void addFraction(Fraction &f, Fraction const &f1, Fraction const &f2) { f.numerateur = f1.numerateur*f2.denominateur + f2.numerateur*f1.denominateur; f.denominateur = f1.denominateur*f2.denominateur; } void afficheFraction(Fraction const &f) { cout << f.numerateur << '/' << f.denominateur << endl; } int pgcd(int m, int n) { while (m>0) { if( n > m ) { swap(m, n); } m -= n; } return n; } void simplifieFraction(Fraction &f) { int r = pgcd(f.numerateur, f.denominateur); f.numerateur /= r; f.denominateur /= r; } void setFraction(Fraction &f, int num, int den) { f.numerateur = num; f.denominateur = den; simplifieFraction(f); } bool compareFraction (Fraction f1, Fraction f2) { simplifieFraction(f1); simplifieFraction(f2); return f1.numerateur == f2.numerateur && f1.denominateur == f2.denominateur; } int main() { Fraction f1, f2; setFraction(f1, 5, 4); setFraction(f2, 5, 2); Fraction f3; addFraction(f3, f1, f2); afficheFraction(f3); Fraction result = {15,4}; if(compareFraction(f3, result)) { cout << "Les fractions sont identiques" << endl; } simplifieFraction(f3); afficheFraction(f3); }