如何在 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);
我需要用 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);