如何在 C++ 中翻译这个代数表达式?

How Do I Translate This Algebraic Expression In C++?

我需要用 C++ 编写并执行一个程序来计算表达式的值:

5x^2 + 12y / 3x , Where x = 12, And 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);

Operator Precedence Reference