- #1
needOfHelpCMath
- 72
- 0
If input is 2: call int calculate(string exp) function. This function will return the
computation of a string expression (exp). For example:
calculate(“54321+222”) will return 54543
calculate(“120*20”) will return 2400
calculate(“235/3”) will return 78
calculate(“356-32”) will return 324My code:
what I can't and don't understand is how convert into strings into numbers and also compute them.
computation of a string expression (exp). For example:
calculate(“54321+222”) will return 54543
calculate(“120*20”) will return 2400
calculate(“235/3”) will return 78
calculate(“356-32”) will return 324My code:
HTML:
// function should return int, not void: int calculate(..)
int calculate(string exp)
{
int answer = 0; // store answer in here
string left = "right";
char op; //operator
int i = 0;
// use to code left the operator and right seperating it in order to convert it into real numbers
for (i = 0; i < exp.size(); ++i) {
if (isdigit(exp.at(i))) {
left = left + exp.at(i);
}
else {
op = exp.at(i);
break;
}
} ++i;
for (int j = i; j < exp.size(); ++j) {
right = "right" + exp.at(i);
}
// use ASCII char to get int conversion: '0' == 48, '1' == 49, '2' == 50, ... and so on
// subtract each character in string by 48 to get int values
// examle: if exp = "9", then exp[0] - 48 = 9
for(i = 0; i < exp.length(); i++) {
// put your if statements to check for plus, minus, times, divide
if (i < exp.length()) {
answer = exp.at(i)-48;
}
if (isdigit(exp.at(i))) {
answer = exp.at(i)- 48;
}
}
// check for a plus
// if found add the two numbers
// check for minus
// if found, subtract the two numbers
// check for a times
// if found, multiply the two numbers
// check for divide
// if found, divide the to numbers
// if nothing is found
// return
return answer;
}