第一种方法是最常见的

average=(a + b) / 2这种方式,求两个数的平均值

第二种方法是

当 a

averag=a+(b-a)/2

这里着重介绍的是第三种方法

average=(a&b) + (a^b)>>1

推导过程如下

a + b = (a&b) 2 + (a^b)) ———》average=((a&b)2+(a^b))/2 ————》average=(a&b) + (a^b)>>1

eg:

两个数为15和5

15二进制序列低位为1111

5二进制序列低位为0101

按位与(&)运算后得到两者相同的部分0101

按位异或(^)运算后得到两者不同的部分1010

因为相同的部分两者都有,所以要乘以二,再加上不同的部分(至此为15+5)再除以2就是平均值(10)。

0101为5,乘以2为10,加上1010(10)为20,再除以2就是平均值10.

源代码实例:

#include

#include

int average(int a, int b)

{

return (a&b) + ((a^b) >> 1);

}

int main()

{

int num1, num2;

int result;

printf("请输入两个数\n");

scanf("%d%d", &num1, &num2);

result = average(num1, num2);

printf("平均值是%d\n", result);

system("pause");

return 0;

}

c语言最大数最小数平均数,C语言编程 求两个数的平均值方法(三种方法)相关推荐

  1. C语言中求两数最大公约数的三种方法

    1.穷举法 思路: 首先对输入的两个数x,y判断两者的大小,取两者中较小的数放入i中.然后用x%i;y%i,如果两者都为0,则此时i为最大公约数.如果其中有一个不为0,则i减1后再用x,y分别模上i( ...

  2. 【C语言求素数(质数)的三种方法】

    失踪人口回归,假期因为太懒,刚开学的这几天又真的忙,所以好长时间没有发文章了,马上我们要进行C语言考试了,我发现学的东西好多都不太懂,所以慢慢要在进行一次复习了:上周数据结构课上老师让写程序求素数,我 ...

  3. C语言中比较大小的函数模板,关于C++中定义比较函数的三种方法

    关于C++中定义比较函数的三种方法 C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之.以下,小编为大家介绍关于C++中定义比较函数的三种方法,供 ...

  4. linux编程获取本机IP地址的三种方法

    这是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡 ...

  5. (转载)Linux编程获取本机IP地址的三种方法

    (转载)http://blog.csdn.net/jcwKyl/article/details/6324147 这 是一项不太清晰而且没有多大意义的工作.一个原因是网络地址的设置非常灵活而且都是允许用 ...

  6. c语言 求两个数的平均值

    方法一 两个数相加,除以2求平均值 这种方法最直观,但存在问题,a,b在计算机内存储有限,当a,b很大时可能会出现溢出. 方法二 思路:计算a,b差值,除以2,再加上a或b就是a,b的平均值. 方法三 ...

  7. c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程

    c语言计算机编程三种方法求解非线性方程 本 科 专 业 学 年 论 文题 目:非线性方程求解比较姓 名: 何 娟 专 业: 计算机科学技术系 班 级: 08 级本科(2)班 指 导 老 师: 刘 晓 ...

  8. c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程.doc

    c语言计算机编程三种方法求解非线性方程.doc 本 科 专 业 学 年 论 文题 目非线性方程求解比较姓 名 何 娟 专 业 计算机科学技术系 班 级 08 级本科(2)班 指 导 老 师 刘 晓 娜 ...

  9. 【C语言练习】求两个数m和n的最大公约数(辗转相除法)

    求两个数m和n的最大公约数 一.编程思路 1.首先,题目里是两个数,我们自然而然要想到定义两个变量: 2.其次,我们的目的是寻找最大公约数,所以要搞清楚其概念:两个或多个整数共有约数中最大的一个 3. ...

最新文章

  1. python如何控制程序的运行顺序_Python流程控制-1 顺序执行
  2. php读取本地xlsx格式文件的数据并按json格式返回
  3. 英特尔第11代酷睿处理器TigerLake发布,集成Xe GPU,采用10nm制程技术
  4. P4755 Beautiful Pair (数据结构+分治)
  5. C++Builder 2010深入TApplication类之属性
  6. layui上传报错会有哪些原因_一到冬天,为什么会比别人更怕冷?有哪些原因?...
  7. Python之Hello World
  8. 这42个Python小例子,太走心~
  9. python wechatpay微信支付回调_python服务器 实现app微信支付:支付异步通知
  10. 蓝桥杯真题:单词分析
  11. R3黯然史:从昔日最风光,到如今危机重重
  12. Word2013设置多级标题自动编号
  13. c语言:素数和(教训,调试时随手写的语句记得删掉)
  14. Word 如何删除页面中的回车符 / 段落标记
  15. 舒亦梵:几条投资理念,决定你是否具有富人思维
  16. Linux - #!/bin/bash 和 #!/usr/bin/env bash 的区别
  17. 关于我开始使用博客的这件事
  18. Elasticsearch 如何实现时间差查询?
  19. ElasticSeach详细安装教程--图文介绍超详细
  20. 数据湖产品国内重点厂商介绍

热门文章

  1. 计算1-10000之间的质数
  2. 02 - 汽车功能安全系列之概念阶段开发 - Item Definition HARA
  3. uiview 渐变_UIView的背景渐变色~~~
  4. pandas读取⽂件的read_csv()⽅法的parse_dates参数
  5. 2014年9月4日新GRE真题回忆
  6. mysql tcmalloc_tcmalloc优化mysql性能测试
  7. 【图算法】社区发现算法——Fast unfolding
  8. 《炬丰科技-半导体工艺》半导体封装流程
  9. 基于高速51单片机的模拟USB接口设计
  10. iPhone彻底删除照片如何恢复?3个恢复方法推荐