Debugging CS Thinking Example 2
Follow the full solution, then compare it with the other examples linked below.
Example 2
mediumThis code calculates an average but gives the wrong answer: SET total = 0. FOR each num in [10, 20, 30]: total = total + num. SET average = total / 2. OUTPUT average. The input has 3 numbers. Find the bug.
Solution
- 1 Step 1: total = 10+20+30 = 60. average = 60/2 = 30.
- 2 Step 2: The correct average should be 60/3 = 20.
- 3 Step 3: Bug: dividing by 2 instead of the number of elements (3). Fix: average = total / LENGTH(list).
Answer
Change `total / 2` to `total / LENGTH(list)`. Hard-coded divisor instead of using list length.
Hard-coding values (like the divisor) instead of computing them dynamically is a common source of bugs. Using LENGTH(list) makes the code correct for any list size.
About Debugging
The systematic process of finding, diagnosing, and correcting errors (bugs) in a program. Debugging involves reproducing the problem, isolating its cause through testing and inspection, applying a targeted fix, and verifying the fix resolves the issue without introducing new problems.
Learn more about Debugging โMore Debugging Examples
Example 1 medium
This code should print numbers 1 to 5 but has a bug: SET i = 1. WHILE i < 5: OUTPUT i. i = i + 1. Fi
Example 3 mediumThis code should output the largest number in [3, 7, 2, 9, 4] but outputs 3: SET largest = nums[0].
Example 4 mediumA program to sum the numbers 1 through 5 uses `SET total = 1; FOR i = 1 TO 5: total = total + i`. It