Nikt Ci nie odpisuje bo dałeś furasowi najlepszą odpowiedź czyli tak jakbyś oznaczył wątek za zakończony. Wiem, że to mało rozwijające ale napisałem dla Ciebie gotowe rozwiązanie, głównie po to żeby zaznaczyć kilka istotnych faktów:
#include <iostream>
#define ull unsigned long long
using namespace std;
ull NWD (ull a, ull b) {
ull tmp;
while (b != 0) {
tmp = b;
b = a % b;
a = tmp;
}
return a;
}
int main() {
ull a, b, c, d, nww, nwd, nwd2;
char znak;
cin >> a >> znak >> b;
cin >> c >> znak >> d;
nwd = NWD(b, d);
nww = (b / nwd) * d;
a = (d / nwd) * a;
c = (b / nwd) * c;
nwd2 = NWD(a + c, nww);
cout << (a + c) / nwd2 << '/' << nww / nwd2 << endl;
return 0;
}
Nie jest to jakoś super zoptymalizowany program ale działa...
Kilka uwag:
1) Twoja metoda ogólnie nie zawsze działa, a te pętle while to na prawdę był zły pomysł
2) Koniecznie używaj funkcji, piszesz dla siebie, a nie po to żeby Twój nauczyciel nie pomyślał, że zgapiasz
3) Stosuj wcięcia i spacje, bo Twój kod na prawdę jest baaaaarrrdzzzoooo nie czytelny
4) Błagam Cię nie nazywaj zmiennych jako "coś"
Pozdrawiam,