求平均数函数

不用(a+b)/2求两数平均值

#include<stdio.h>
#include<stdlib.h>
void average(int a, int b)
{
	while (a < b)
	{
		a = a + 1;
		b = b - 1;
	}
	while (a > b)
	{
		a = a - 1;
		b = b + 1;
	}
	if (a == b)

		printf("平均值为:%d\n", a);
}
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d",&a, &b);
	average(a,b);
	
	
	system("pause");
	return 0;
}

//以上算法容易产生溢出,用简单的算法即可解决

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int a = 0;
	int b = 0;
	int avg = 0;

	printf("请输入要算平均值的数:\n");
	scanf("%d%d", &a, &b);
	avg = a - (a - b) / 2;//或者avg=a&b+(a^b)>>1;
	printf("avg=%d", avg);
	
	system("pause");
	return 0;
}


你可能感兴趣的:(C语言)