GreyHatBlaze - 9 months ago 35

C++ Question

I need to write and execute a program in C++ that computes the value of the expression:

5x^2 + 12y / 3x , Where x = 12, And y = 9.8

This is what I have:

`int num1 = 12; float num2 = 9.8; float totalResult;`

totalResult = 5 * num1 * num2 + 12 * num2 / 3 * num1;

cout << totalResult;

The answer is 23.2667 but I'm getting a wrong result.

Answer

Your issue is order of operations (and a typo on `num1 * num2`

).

Your proposed correct answer is 23.2667, which is only possible if you interpret `/`

as being the last operation. To force the division to happen last, put the left and right sides in parentheses:

```
totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
```

That way it executes in this order:

```
1 2 4 3 6 5
totalResult = (5 * num1 * num1 + 12 * num2) / (3 * num1);
```

Otherwise, it was executing in this order:

```
1 2 6 3 4 5
totalResult = 5 * num1 * num1 + 12 * num2 / 3 * num1;
```

Here's a proof with JavaScript:

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

Source (Stackoverflow)