求平均數函數

不用(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;
}

//以上算法容易產生溢出,用簡單的算法便可解決ide

#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;
}
相關文章
相關標籤/搜索