📖 Scenario: Imagine you are calculating the total cost of items in a shopping cart. You want to make sure the calculations happen in the right order so you get the correct total.
🎯 Goal: You will write a small C++ program that uses arithmetic operators with different precedence. You will see how the order of operations affects the final result.
📋 What You'll Learn
Create variables with exact values
Use a configuration variable for a discount rate
Write an expression that uses multiple operators to calculate the final price
Print the final calculated price
💡 Why This Matters
🌍 Real World
Calculating prices with discounts is common in shopping apps and billing systems.
💼 Career
Understanding operator precedence helps avoid bugs in financial calculations and software development.
Progress0 / 4 steps
1
Create initial variables
Create three variables: price1 with value 50, price2 with value 30, and price3 with value 20.
C++
Hint
Use int type and assign the exact values to each variable.
2
Add a discount rate variable
Add a variable called discount of type double and set it to 0.1 (which means 10% discount).
C++
Hint
Use double type for decimal values.
3
Calculate total price with discount
Create a variable totalPrice of type double and set it to the expression (price1 + price2 + price3) * (1 - discount). This calculates the sum of prices and applies the discount.
C++
Hint
Use parentheses to ensure addition happens before multiplication.
4
Print the final total price
Write a std::cout statement to print the text Total price: followed by the value of totalPrice.
C++
Hint
Use std::cout with << to print text and variables.
Practice
(1/5)
1. Which operator has the highest precedence in the expression 3 + 4 * 5?
easy
A. Addition (+)
B. Subtraction (-)
C. Multiplication (*)
D. Division (/)
Solution
Step 1: Identify operators in the expression
The expression has addition (+) and multiplication (*).
Step 2: Recall operator precedence rules
Multiplication (*) has higher precedence than addition (+), so it is evaluated first.
Final Answer:
Multiplication (*) -> Option C
Quick Check:
Multiplication before addition = Multiplication (*) [OK]
Hint: Multiplication and division come before addition and subtraction [OK]
Common Mistakes:
Thinking addition runs before multiplication
Ignoring operator precedence rules
Assuming left-to-right always applies
2. Which of the following expressions is syntactically correct in C++?
easy
A. int x = 5 + (3 * 2);
B. int x = 5 + 3 *;
C. int x = 5 + *3;
D. int x = 5 + 3 * 2);
Solution
Step 1: Check each expression for syntax errors
int x = 5 + *3; has an invalid use of * before 3. int x = 5 + 3 *; ends with * which is incomplete. int x = 5 + 3 * 2); has an unmatched closing parenthesis.
Step 2: Confirm correct syntax
int x = 5 + (3 * 2); uses parentheses correctly and has valid operators and operands.
Final Answer:
int x = 5 + (3 * 2); -> Option A
Quick Check:
Valid syntax with parentheses and operators = int x = 5 + (3 * 2); [OK]
Hint: Check for balanced parentheses and proper operator placement [OK]
Common Mistakes:
Misplacing operators without operands
Unbalanced parentheses
Using operators incorrectly
3. What is the output of the following code?
int a = 2, b = 3, c = 4;
int result = a + b * c / a - b;
std::cout << result;
medium
A. 5
B. 2
C. 4
D. 3
Solution
Step 1: Evaluate multiplication and division first
b * c = 3 * 4 = 12; then 12 / a = 12 / 2 = 6.
Step 2: Evaluate addition and subtraction left to right
a + 6 = 2 + 6 = 8; then 8 - b = 8 - 3 = 5.
Final Answer:
5 -> Option A
Quick Check:
Multiplication/division before addition/subtraction = 5 [OK]
Hint: Do * and / before + and -, left to right [OK]
Common Mistakes:
Adding before multiplying
Ignoring division precedence
Calculating subtraction before addition
4. Find the error in the following code snippet:
int x = 10;
int y = 5;
int z = x + y * / 2;
std::cout << z;
medium
A. Division by zero error
B. Syntax error due to misplaced operator
C. Logical error in calculation
D. No error, code runs fine
Solution
Step 1: Analyze the expression for syntax correctness
The expression x + y * / 2 has two operators (*) and (/) together without an operand, which is invalid syntax.
Step 2: Confirm the error type
This causes a syntax error because the compiler cannot parse the expression correctly.
Final Answer:
Syntax error due to misplaced operator -> Option B
Hint: Check operator placement for missing operands [OK]
Common Mistakes:
Assuming code runs despite syntax errors
Confusing syntax error with runtime error
Ignoring operator adjacency rules
5. Consider the expression int result = 10 - 3 * 2 + 4 / 2;. How can you change it using parentheses to make addition happen before multiplication and division?
hard
A. int result = 10 - ((3 * 2) + 4) / 2;
B. int result = ((10 - 3) * 2 + 4) / 2;
C. int result = 10 - ((3 * 2) + (4 / 2));
D. int result = 10 - (3 * (2 + 4)) / 2;
Solution
Step 1: Understand original precedence
Original expression evaluates multiplication and division before addition and subtraction.
Step 2: Use parentheses to force addition before multiplication/division
int result = 10 - (3 * (2 + 4)) / 2; groups (2 + 4) first, so addition happens before multiplication and division.
Final Answer:
int result = 10 - (3 * (2 + 4)) / 2; -> Option D
Quick Check:
Parentheses change order to add before multiply/divide [OK]
Hint: Use parentheses to group additions before other ops [OK]
Common Mistakes:
Misplacing parentheses changing meaning
Not grouping addition properly
Assuming left-to-right overrides precedence
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.