题目:不使用除法来做(a+b)/2
题目分析:在不使用除法来做两数的除法时,而且是除以2,所以首先想到的就是数据的右移,右移就是使整数缩小一半,但是这里要考虑两数相除得到的不一定都是整数,所以要按情况来补所缺失的0.5.
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
double Division(int value,int value2){
int sum1 = 0; //两个初始值的和
double sum2 = 0.0; // 两个数的和除以2之后的值
sum1 = value + value2;
printf("两个数原来的和为:%d\n", sum1);
if (sum1 % 2 == 0){
sum2 = sum1 >> 1;
}
else{
sum2 = (sum1 >> 1) + 0.5;
}
printf("两个数的和除以2之后为:%.1f\n", sum2);
return 0;
}
int main(){
int temp = 0;
int temp2 = 0;
printf("请输入一个整数:\n");
scanf("%d", &temp);
printf("请再输入一个整数:\n");
scanf("%d", &temp2);
Division(temp,temp2);
printf("\n");
system("pause");
return 0;
}