Mam problem z programem który ma wykonywać działania na ułamkach przy tym dokładnie je skracając i nie wiem jakiej funkcji użyć żeby obliczyć nwd i nww
#include<iostream>
using namespace std;
int NWD(int a, int b)
{
int pom;
while(b!=0)
{
pom = b;
b = a%b;
a = pom;
}
return a;
}
int NWW(int a, int b)
{
return a/NWD(a,b)*b;
}
int main()
{
int l1,l2,l3,m1,m2,m3,Polecenie=0,kreska,NWW,NWD,pom;
int licznik, mianownik;
int pomocnicza=licznik=mianownik/m1*l1+mianownik/m2*l2;
do
{
cout<< "[1] Dodawanie"
<< endl << "[2] Odejmowanie"
<< endl << "[3] Mnozenie"
<< endl << "[4] Dzielenie"
<< endl << "[5] Rezygnuj"
<< endl << "Twoje polecenie:";
cin >> Polecenie;
switch( Polecenie )
{
case 1:
cout<<"Podaj pierwszy ułamek w formacie licznik/mianownik: ";
cin>>l1>>kreska>>m1;
cout<<"Podaj drugi ułamek w formacie licznik/mianownik: ";
cin>>l2>>kreska>>m2;
cout<<"Podaj trzeci ułamek w formacie licznik/mianownik: ";
cin>>l3>>kreska>>m3;
mianownik = NWW(m1, m2, m3);
licznik /= NWD(pom,mianownik);
mianownik /= NWD(pom,mianownik);
cout<<l1<<"/"<<m1<<" + "<<l2<<"/"<<m2<<" = "<<licznik<<"/"<<mianownik;
break;
case 2:
cout<<"Podaj pierwszy ułamek w formacie licznik/mianownik: ";
cin>>l1>>kreska>>m1;
cout<<"Podaj drugi ułamek w formacie licznik/mianownik: ";
cin>>l2>>kreska>>m2;
cout<<"Podaj trzeci ułamek w formacie licznik/mianownik: ";
cin>>l3>>kreska>>m3;
mianownik = NWW(m1, m2, m3);
licznik /= NWD(pom,mianownik);
mianownik /= NWD(pom,mianownik);
break;
case 3:
cout<<"Podaj pierwszy ułamek w formacie licznik/mianownik: ";
cin>>l1>>kreska>>m1;
cout<<"Podaj drugi ułamek w formacie licznik/mianownik: ";
cin>>l2>>kreska>>m2;
cout<<"Podaj trzeci ułamek w formacie licznik/mianownik: ";
cin>>l3>>kreska>>m3;
mianownik = NWW(m1, m2, m3);
licznik /= NWD(pom,mianownik);
mianownik /= NWD(pom,mianownik);
break;
case 4:
cout<<"Podaj pierwszy ułamek w formacie licznik/mianownik: ";
cin>>l1>>kreska>>m1;
cout<<"Podaj drugi ułamek w formacie licznik/mianownik: ";
cin>>l2>>kreska>>m2;
cout<<"Podaj trzeci ułamek w formacie licznik/mianownik: ";
cin>>l3>>kreska>>m3;
mianownik = NWW(m1, m2, m3);
licznik /= NWD(pom,mianownik);
mianownik /= NWD(pom,mianownik);
break;
case 5:
break;
default:
cout << "Nieprawidlowe polecenie." <<endl;
}
}
while( Polecenie != 5 );
system("pause");
}