致读者:
平均数 平均数是指在一组数据中所有数据之和再除以数据的个数。平均数是表示一组数据集中趋势的量数,它是反映数据集中趋势的一项指标。解答平均数应用题的关键在于确定“总数量”以及和总数量对应的总份数。在统计工作中,平均数(均值)和标准差是描述...
【方法一】:
这种方法最为简单,弊端是如果a和b非常大的话,a+b的值可能超过了整型的储存范围(最大值为2147483647),导致溢出,得到错误的结果.
#include <stdio.h> int main() { int a=10; int b=20; int avg=0; avg=(a+b)/2;//平局值 //或者 avg=(a+b)>>1://右移表示除2,左移表示乘2 return 0; }
【方法二】:
用一个较大值减去另一个较小值得到二者之差,将差除2后加上较小值即得到了二者平均值,可有效防止溢出的情况的出现。
#include <stdio.h> int main() { int a=10; int b=20; int avg=0; avg=b+(a-b)/2;//平均值 //或者 avg=b+(a-b)>>1://右移表示除2,左移表示乘2 return 0; }
【方法三】:
1000 10&12可得到
0010+0100 10^12可得到
计算a与b的平均值C语言表达式:
avg = (a&b) + (a^b)>>1;
#include <stdio.h> int main() { int a=10; int b=20; int avg=0; avg = (a&b) + (a^b)>>1; //或者 avg = (a&b) + (a^b)/2; return 0; }