#include <iostream>
using namespace std;
int NWD(int a, int b) {
int r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
int NWW(int a, int b) {
return a * b / NWD(a, b);
}
struct ulamek {
int licznik, mianownik;
};
ulamek Suma(ulamek u1, ulamek u2) {
ulamek w; // ułamek wynikowy
w.licznik = u1.licznik * u2.mianownik + u2.licznik * u1.mianownik;
w.mianownik = u1.mianownik * u2.mianownik;
//skracanie ułamka wynikowego
if (w.licznik == 0)
w.mianownik = 1;
else {
int x; // zmienna pomocnicza do obliczania NWD
if (w.licznik < 0)
x = NWD(-w.licznik, w.mianownik);
else
x = NWD(w.licznik, w.mianownik);
w.licznik /= x;
w.mianownik /= x;
}
return w;
}
int main() {
ulamek u1, u2;
cin >> u1.licznik >> u1.mianownik >> u2.licznik >> u2.mianownik;
cout << Suma(u1, u2) << endl;
}
Program nie chce się skompilować i pokazuje błąd w linijce cout << Suma(u1, u2) << endl; nie wiem z jakiego powodu. Proszę o odpowiedź i wytłumaczenie dlaczego tak jest.