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

时间:2016-09-15 04:23:15

标签: c++ math expression algebra arithmetic-expressions

我需要用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,但我得到了错误的结果。

1 个答案:

答案 0 :(得分:4)

您的问题是操作顺序(以及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的证明:

&#13;
&#13;
var num1 = 12; var num2 = 9.8; 
var totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
console.log(totalResult);
&#13;
&#13;
&#13;

Operator Precedence Reference

相关问题