Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the type errors pattern
Totals that concatenate, sorts that put 10 before 9, comparisons that refuse to run.
What went wrong: std::accumulate determines the accumulator type solely from the third argument (init). Passing 0 (int) causes all floating-point elements to be truncated to integers during summation.
The fix: Pass 0.0 (double literal) as the initial accumulator value.
Remember: The type of the third argument to std::accumulate controls the accumulator type. Use 0.0 for floating-point sums.
The pattern behind it: type errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/34b0373e-fa23-4be7-bef0-2f3599bec2f7" title="Debugging challenge: std::accumulate integer default truncates float sum" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/34b0373e-fa23-4be7-bef0-2f3599bec2f7">TryBugHunt</a></p>