int a, b, c = 0;
c = (a+b)/2;
Run Code Online (Sandbox Code Playgroud)
在这段代码中,如果"a"和"b"都是偶数(例1),则没有问题.但如果其中一个是奇数(例2),则答案将为+0.5.我想把它整理一下.
例1.
a = 4,b = 10
c将= 7这没关系.
例2.
a = 3,b = 4
c将= = 3.5 我希望c被四舍五入而成为4.
首先,你错了.c是一个整数,所以它不能是3.5.此外,a,b和2均为整数,所以划分是整数除法,所以它不能在3.5导致任一.它将向零舍入,因此它将为3.
也就是说,要将整数除以2来向上舍入而不是向下舍入,只需在除法之前加1.(14 + 1) / 2 == 7,所以这仍然是正确的.(7 + 1) / 2 == 4,这也是正确的.