1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#include <iostream>
#include <string>
using std::endl;
using std::cout;
using std::cin;
using std::string;
void Multiplication( double &answer, double Numbers[5] );
void Division( double &answer, double Numbers[5] );
void Addition( double &answer, double Numbers[5] );
void Subtraction( double &answer, double Numbers[5] );
int main()
{
string problem;
double Numbers[6]={0}; // Initialize to zero
int order[4];
int len, temp = 0, next = 0;
char op[4] = {'*','/','+','-'};
cout << "Please enter the math problem, using up to 5 numbers. [ex: 3+4*5/6+8 ] : ";
cin >> problem;
len = problem.length()+1;
for(int x=0;x<len;x++)
{
if(problem[x] >='0' && problem[x] <= '9' )
{
temp *= 10;
temp += problem[x]-48;
}
else
{
Numbers[next] = temp;
for(int y=0;y<4;y++)
{
if(problem[x] == op[y])
{
order[next] = y; // The operation requested
}
}
temp=0;
next++;
}
if(next > 5)
{
cout << "You have too many numbers in your math problem.." << endl;
cout << "Program ending.." << endl;
return 1;
}
}
double answer=0.0;
for(int x=0;x<4;x++)
{
if(order[x] == 0)
Multiplication( answer, Numbers );
if(order[x] == 1)
Division( answer, Numbers );
if(order[x] == 2)
Addition( answer, Numbers );
if(order[x] == 3)
Subtraction( answer, Numbers );
}
cout << endl << "Numbers entered, were : ";
for(int x=0;x<next;x++)
cout << Numbers[x] << " ";
cout << endl << "Answer is " << answer << endl << endl;
return 0;
}
void Multiplication( double &answer, double Numbers[5] )
{
answer+=Numbers[0]*Numbers[1];
}
void Division( double &answer, double Numbers[5] )
{
answer+=Numbers[0]/Numbers[1];
}
void Addition( double &answer, double Numbers[5] )
{
answer+=Numbers[0]+Numbers[1];
}
void Subtraction( double &answer, double Numbers[5] )
{
answer+=Numbers[0]-Numbers[1];
}
|