In my C++ code I have:
int c=(a+b)/2;
I know for sure that the final result won't cause integer overflow but this isn't guaranteed for (a+b)
Here is my error message:
Line 20: Char 27: runtime error: signed integer overflow: 1063376696 + 2126753390 cannot be represented in type 'int' (solution.cpp) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:31:27
How can I solve this type of problem?
int c = a + (b-a)/2;, under the premise thatb >= aholds water, will prevent the additive overflow ofa+b.