I'm did a fraction program for one of my programming classes and it did compile, however when I'm running the program it crashes for some reason that I do not know.
Expand|Select|Wrap|Line Numbers
- // fraction.cpp
- #include <iostream>
- #include <string>
- #include "fraction.h"
- using namespace std;
- fraction mult(fraction f1, fraction f2)
- {
- fraction f10;
- int common;
- f10.numerator = (f1.numerator * f2.numerator);
- f10.denominator = (f1.denominator * f2.denominator);
- common = gcd(f10.numerator, f10.denominator);
- f10.numerator /= common;
- f10.denominator /= common;
- return f10;
- }
- fraction add(fraction f1, fraction f2)
- {
- fraction f10;
- int common;
- f10.numerator = (f1.numerator + f2.numerator);
- f10.denominator = (f1.denominator + f2.denominator);
- common = gcd(f10.numerator, f10.denominator);
- f10.numerator /= common;
- f10.denominator /= common;
- return f10;
- }
- fraction sub(fraction f1, fraction f2)
- {
- fraction f10;
- int common;
- f10.numerator = (f1.numerator - f2.numerator);
- f10.denominator = (f1.denominator - f2.denominator);
- common = gcd(f10.numerator, f10.denominator);
- f10.numerator /= common;
- f10.denominator /= common;
- return f10;
- }
- fraction div(fraction f1, fraction f2)
- {
- fraction f10;
- int common;
- f10.numerator = (f1.numerator / f2.numerator);
- f10.denominator = (f1.denominator / f2.denominator);
- common = gcd(f10.numerator, f10.denominator);
- f10.numerator /= common;
- f10.denominator /= common;
- return f10;
- }
- void read()
- {
- int numerator;
- int denominator;
- cout << "Enter your numerator: ";
- cin >> numerator;
- cout << "Enter your denominator: ";
- cin >> denominator;
- }
- void print(fraction a_fraction)
- {
- cout << a_fraction.numerator << "/" << a_fraction.denominator << endl;
- }
- int gcd (int u, int v)
- {
- u = (u < 0) ? -u : u;
- v = (v < 0) ? -v : v;
- while (u > 0)
- {
- if (u < v)
- {
- int t = u;
- u = v;
- v = t;
- }
- u -= v;
- }
- return v;
- }
- // -------------------------------
- // calc.cpp
- #include <iostream>
- #include <string>
- #include "fraction.h"
- using namespace std;
- int main()
- {
- fraction f1;
- fraction f2;
- fraction f10;
- fraction f;
- fraction a_fraction;
- fraction answer;
- char symbol = ' ';
- string nome;
- while (true)
- {
- cout << "+\tADD\n";
- cout << "-\tSUBTRACT\n";
- cout << "* or x\tMULTIPLY\n";
- cout << "/\tDIVIDE\n";
- cout << "E\tEXIT\n";
- cout << "What operation do you want to use?: ";
- cin >> symbol;
- if (symbol == 'e' || symbol == 'E')
- exit(0);
- switch (symbol)
- {
- case '+':
- read();
- print(a_fraction);
- answer = add(f1, f2);
- nome = "sum";
- break;
- case '-':
- read();
- print(a_fraction);
- answer = sub(f1, f2);
- nome= "difference";
- break;
- case '*':
- read();
- print(a_fraction);
- answer = mult(f1, f2);
- break;
- case 'x':
- read();
- print(a_fraction);
- answer = mult(f1, f2);
- nome = "product";
- break;
- case '/':
- read();
- print(a_fraction);
- answer = div(f1, f2);
- nome = "quotient";
- break;
- }
- void print(fraction a_fraction);
- }
- return 0;
- }
- // ------------------------
- // fraction.h
- struct fraction
- {
- int numerator;
- int denominator;
- };
- fraction mult(fraction f1, fraction f2);
- fraction add(fraction f1, fraction f2);
- fraction sub(fraction f1, fraction f2);
- fraction div(fraction f1, fraction f2);
- void read();
- void print(fraction a_fraction);
- int gcd (int u, int v);
Here they are:
c:\documentos\programas\calculator\fraction\fracti on\calc.cpp(15) : warning C4101: 'f' : unreferenced local variable
c:\documentos\programas\calculator\fraction\fracti on\calc.cpp(14) : warning C4101: 'f10' : unreferenced local variable
c:\documentos\programas\calculator\fraction\fracti on\calc.cpp(38) : warning C4700: uninitialized local variable 'a_fraction' used
c:\documentos\programas\calculator\fraction\fracti on\calc.cpp(39) : warning C4700: uninitialized local variable 'f2' used
c:\documentos\programas\calculator\fraction\fracti on\calc.cpp(39) : warning C4700: uninitialized local variable 'f1' used
Thank you all,
Doug