不使用(a+b)/2这种方式,求两个数的平均值
2016-05-29 22:49
288 查看
#include<stdio.h> #include<stdlib.h> int change_int(int a, int b) //求平均数 { int c = 1, d = 1; c = a&c; //求a的右侧第一位,看是否为奇数, d = b&d; //求b的右侧第一位,看是否为奇数, a >>= 1; b >>= 1; a = a + b; if ((c&d) == 1) //如果两个数均为奇数,则补1 a = a + 1; return a; //返回平均数 } int main() { int a,b; printf("please enter a and b:"); scanf("%d%d",&a,&b); //对a,b初始化,即输入想要求平均数的两个数 printf("%d\n", change_int(a,b)); //调用函数并输出 system("pause"); return 0; }本文只是在下在学习过程自己的想法,只能实现简单功能,可能还没考虑到程序的优化,与大神写出来的代码还有一定差距,如果那位大神发现了问题,请您不吝赐教,如果您还有更好的方法,不妨分享分享,谢谢!
本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1706066
相关文章推荐
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。
- Linux系统如何写C/C++程序
- Linux 入门——适合初学者本文转载于的博客原文
- 在字符串中找出第一个只出现一次的字符。经典C语言例题
- 实现函数,用字符串&quot;%20&quot;替换空格
- 使用冒泡排序,排序一组字符串
- 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数
- 用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。
- 用C语言编程,实现调整数组,使奇数全部位于偶数前边,
- 用C语言编写函数,实现strlen计算字符串长度的功能
- 设计实现一个简易通讯录,要求使用结构体
- 将数字字符串转化为对应数字输出(不考虑溢出)
- 团队博客3
- Canvas和SVG
- 位运算-Single Number III(只有两个不同的数字出现了一次,其余出现了两次,找出这两个数)
- geekband android #5 第十三周分享(Btimap优化)
- 应用沙盒分析
- cocoaPods
- HDU 1856 More is better
- 初识XMLHttpRequeset