Bruchteil Berechnung

Ich muss ein Programm schreiben, berechnen kann Brüche mit dem operator, den der Benutzer eingibt. Ich habe verschiedene Funktionen zu reduzieren, die Fraktionen und finden Sie den größten gemeinsamen Nenner (was ich nicht sicher bin, ob ich Sie korrekt eingerichtet oder nicht), und dann habe ich die Funktion berechnen (), um die Antwort zu finden. Ich muss drucken Sie die Letzte Antwort in der Fraktion bilden, und nicht dezimal.

Das problem, das ich habe ist, dass ich nicht weiß, wie die Rückkehr num3 und den3 von calculate() zurück in die main-Funktion. Wenn jemand helfen könnte wäre ich sehr dankbar. Danke.

Hier ist mein code bisher:

/*Problem: Write a program to manipulate fractions. It allows for the addition, subtraction, multiplication, or division of fractions.
    Inputs:
    Outputs:
*/

#include <iostream>
using namespace std;

void calculate(int num1, int den1, int& num3, int& den3, int num2, int den2);
void reduce(int& num, int& den);
int gcd(int a, int b);

int main(){
    int num1, num2, den1, den2, add, sub, mult, div;
    int op, calc;
    int num3, den3;

    cout << "Enter the numerator of the first fraction" << endl;
    cin >> num1;
    cout << "Enter the denominator of the first fraction" << endl;
    cin >> den1;
    cout << "Enter the numerator of the second fraction" << endl;
    cin >> num2;
    cout << "Enter the denominator of the second fraction" << endl;
    cin >> den2;
    cout << "Enter a 1 for addition, 2 for subtraction, 3 for multiplication, or 4 for division" << endl;
    cin >> op;
    calculate(op, num1, den1, num3, den3, num2, den2);
    cout << "The answer using option: " << op << endl;
    cout << "is " << num3 << " /" << den3 << endl;



    return 0;
}

void calculate(int op, int num1, int den1, int& num3, int& den3, int num2, int den2){
    if(op==1){
        num3 = num1 + num2;
        den3 = den1;
    }
    else if(op==2){
        num3 = num1 - num2;
        den3 = den1;
    }
    else if(op==3){
        num3 = num1 * num2;
        den3 = den1 * den2;
    }
    else if(op==4){
        num3 = num1 * den2;
        den3 = num2 * den1;
    }
}

void reduce(int& num, int& den){
    int reduced;
    reduced = gcd(num, den);
    num = num/reduced;
    den = den/reduced;

}

int gcd(int a, int b){
    int divisor=1, temp;

    while(b!= 0 || b>a){ 
        temp = a % b; 
        a = b; 
        b = temp = divisor; 
    }
    while(a!=0 || a>b){
        temp = b % a;
        b = a;
        a = temp = divisor;
    }

    return divisor;
}
  • Sie brauchen nicht, etwas besonderes zu tun. Sie tun bereits alles, was Sie brauchen, nur durch die Zuweisung neuer Werte zu num3 und den3. Der Anrufer wird beobachten, diese neuen Werte. Das ist es, was Referenzen sind.
InformationsquelleAutor user2917900 | 2013-10-24
Schreibe einen Kommentar