avg = round(r + g + b) / 3); r = avg; g = avg; b = avg;
It should do the grayscale image effect. There are no syntax errors, but apperently avg, when calculated as shown above with values
r as 27, and both
b as 28, avg finds it to be 27. I know it is 27.66666... and when rounded that is 28. if you can either-or/both explain to me why this happens with round(), and/or give me a solution, it is really appreciated. thanks!
bhave integer types, the expression
(r + g + b) / 3performs integer division because all operands have integer type. This means that any fractional part of the division gets truncated.
double, so this will perform floating point division. Then rounding the result of this expression will give you the desired result.