it is giving me wrong output.

It is giving me huge numbers as answers. Also I am supposed to account for whole numbers and dont know how.Code:#include <iostream.h> void addfraction (int w, int x, int y, int z, int& newnumerator, int& newdenominator) { int number1, number2; number1=w*z; number2=y*x; newdenominator=z*x; newnumerator=number1+number2; }; int GCD(int a, int b ) { int remainder, quotient, divisor, numerator; if (a > b) { remainder=a%b; quotient=a/b; divisor=b; } else { remainder=b%a; quotient=b/a;divisor=a; } while( remainder!=0 ) { numerator=divisor; divisor=quotient; remainder=numerator%divisor; quotient=numerator/divisor; } return divisor; } int simplify(int a, int GCD ) { int product; { { product=a / GCD; } } return product; } int main() { int w, x,y,z,a,b; char junk; cout << "Value of first numerator: "; cin >> w; cout << "Value of first denominator: "; cin >> x; cout << "Value of second numerator: "; cin >> y; cout << "Value of second denominator: "; cin >> z; addfraction(w,x,y,z,a,b); cout << "\nThe Greatest Common Divisor of " << a << " and " << b << " is " << GCD(a, b) << endl; cout << "\nThe simplified fraction of " << a << " and " << b << " is " << simplify(a,GCD(a, b)) << " and "<< simplify(b,GCD(a, b)) << endl; cout<<a<<'/'<<b<<endl; cin >> junk; //This input allows for display. //take care of improper fractions return 0; }