Мне нужно написать и выполнить программу на C ++, которая вычисляет значение выражения:
5x ^ 2 + 12y / 3x, где x = 12, а y = 9,8
Вот что у меня есть:
int num1 = 12; float num2 = 9.8; float totalResult;
totalResult = 5 * num1 * num2 + 12 * num2 / 3 * num1;
cout << totalResult;
Ответ 23.2667, но я получаю неправильный результат.
Ваша проблема — порядок операций (и опечатка на num1 * num2
).
Ваш правильный правильный ответ — 23.2667, что возможно только в том случае, если вы /
как последняя операция. Чтобы разделение происходило последним, поместите левую и правую стороны в скобки:
totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
Таким образом, он выполняется в следующем порядке:
1 2 4 3 6 5
totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
В противном случае он выполнялся в следующем порядке:
1 2 6 3 4 5
totalResult = 5 * num1 * num1 + 12 * num2 / 3 * num1;
Вот доказательство с помощью JavaScript:
var num1 = 12; var num2 = 9.8;
var totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
console.log(totalResult);
Других решений пока нет …