第一种方法:
思路:两数相加求和再除2
代码
int a=10;
int b=20;
int avg=0;
avg=(a+b)/2;//平局值
//或者
avg=(a+b)>>1://右移表示除2,左移表示乘2
这种方法最为简单,弊端是如果a和b非常大的话,a+b的值可能超过了整型的储存范围(最大值为2147483647),导致溢出,得到错误的结果,此方法不够好。
第二种方法:
思路:用一个较大值减去另一个较小值得到二者之差,将差除2后加上较小值即得到了二者平均值,可有效防止溢出的情况的出现。
图解:
第一步:将a分成a-b和b