CS Студент здесь. Я хочу иметь возможность взять строку, такую как «2 + 2 * 3/2-2», и оценить ее (= 3). Но я не уверен, как структурировать код, чтобы следовать правильному порядку операций. Вот код для умножения и деления:Строковые выражения с четырьмя операторами
int r = 1;
int n = 0;
char op = '*';
for (int i = 0; i < E.length(); i++)
if (E.charAt(i)=='*'||E.charAt(i)=='/')
{
if (op == '*')
r *= n;
else
r /= n;
n = 0;
op = E.charAt(i);
}
else
n = n*10 + (E.charAt(i)-'0');
if (op == '*')
r *= n;
else
r /= n;
return r;
Спасибо за чтение!
были бы какие-либо скобки? –
Вы можете найти интересную информацию по адресу http://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form –