第一种方法

  • 思路:两数相加然后除以2
  • 参考代码:
#include<stdio.h>int main(){  int a = 10;int b = 20;int aver = (a + b) / 2;//int aver = (a + b) >> 1;//右移一位相当于除以二printf("avg=%d\n", aver);return 0;}

缺点:a+b变的更大了,如果a和b都是一个很大的数可能会超出整形所能储储存的最大范围,导致整型溢出,从而计算错误

第二种方法

  • 思路:用较大的数减去较小的数然后除以2在加到较小的那个数上可以得到两个数的平均值(如下图)

  • 参考代码:

int main(){int a = 10;int b = 20;int aver = a + (b - a) / 2;//int aver = a + (b - a) >> 1;//右移一位相当于除以二printf("avg=%d\n", aver);return 0;}

优点:很好的防止了整形溢出的问题

第三种方法

  • 思路:将两个数的二进制位分为相同部分和不同部分,利用按位与求出相同部分的平均数,然后再用异或求出不同部分的平均数,加起来就是两个数的平均数
  • 例如:
  • 参考代码
    #include<stdio.h>int main(){int a = 10;int b = 20;int aver = (a&b) + ((a^b) >> 1);printf("aver=%d\n", aver);return 0;}

计算两个数平均数的三种方法相关推荐

  1. 计算两个数平均值的三种方法

    第一种方法: 思路:两数相加求和再除2 代码 int a=10;int b=20;int avg=0;avg=(a+b)/2;//平局值//或者avg=(a+b)>>1://右移表示除2, ...

  2. 计算两个数的平均值几种方法

    方法一:直接求平均值(两个数相加再除以二) int average(int x,int y){return (x + y) / 2; } 这种算法存在着一定的缺陷,当x和y足够大时x和y的和就会存在数 ...

  3. PHP保留两位小数的三种方法

    PHP保留两位小数的三种方法 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 /*** PHP保留两位小 ...

  4. Python除法保留两位小数点(三种方法实现)

    Python除法保留两位小数点(三种方法实现) 前言序锦 学过编程我们都知道,无论什么语言,其实都是相通的,,当我们学会了并掌握好了一种语言后,我们再去了解另外一种语言,其实就很容易了,今天我们就来一 ...

  5. js合并两个数组的三种方法

    js合并数组的三种方法 前提:两个数组a=[1,2,3,4].b=[5,6,7],将其合并为一个数组 1. concat //js的Array对象提供了一个叫concat()方法,连接两个或更多的数组 ...

  6. 交换两个整型变量的三种方法

    在学习C语言的过程中,我们都会遇到的一个题目就是:交换两个整型的变量:今天我将讲解三种方法供大家开拓视野!!! 法一: 新建一个整型变量c,假设我们要交换a b两个整型变量的值,我们先把a变量的内容存 ...

  7. C语言中比较两数的大小——三种方法

    定义a = 10,b = 20,以下为三种比较方式: 一.if-else法 #include<stdio.h> int main(){int a = 10;int b = 20;int r ...

  8. python比较两个二进制文件_python三种方法判断文件是否为二进制文件

    两种方法判断文件是否为二进制文件,最准确的就是把这两种方法结合起来. (1)方法一: 它首先检查文件是否以BOM开始,如果不在初始8192字节内查找零字节: import codecs file_pa ...

  9. 两个数字交换的三种方法

    今天偶然看到了有一篇文章讲解了交换两个数字的方法,感觉很新颖,拿来说一下. 这种问题通常都是我们在学习java基础的时候可能就会做一些小练习,相信大多数人都能够做出来,但是解决问题的办法多种多样,如何 ...

最新文章

  1. html资源文件记载进度条,用进度条显示文件读取进度《 HTML5:文件 API 》
  2. mgr未同步 mysql_MySQL Group Replication(多主同步复制MGR)
  3. 医疗影像网络PACS系统方案
  4. thinkphp+ajax无刷新分页并加载显示图片
  5. AtCoder AGC038F Two Permutations (网络流、最小割)
  6. 灵图天行者9 pc版_原神PC预下载现已开启
  7. resource.arsc二进制内容解析 之 RES_TABLE_TYPE_TYPE (Config List)
  8. 假设检验方差未知_设计云数据库时如何处理未知数并做出假设
  9. CSS3响应式bootstrap模板
  10. C语言博客作业06--结构体文件
  11. LeetCode —— 332. 重新安排行程(Python)
  12. 日记背景 android,只是意外 - 用这些 APP 来记录生活,再也不用担心无法坚持写日记 - Android 应用 - 【最美应用】...
  13. 简单的计算机英语文章,简单的英语小短文欣赏
  14. 通过Filter统一全站编码
  15. 深度学习:循环神经网络(RNN)
  16. 计算机专业过度饱和,教育部:撤销518个本科专业,计算机专业也被撤销,市场饱和了?...
  17. Java删除文件和文件夹的方式
  18. app逆向 安卓开发环境搭建
  19. Ubuntu安装OpenCV4记录
  20. JAV学习笔记—IO相关类

热门文章

  1. 181216-向数据库中导入csv文件,日期格式不符的问题
  2. 深湛高铁线路(echarts)
  3. e-table 合并行 合并列
  4. tp90和tp99是指什么性能指标
  5. 剑三插件怎么导入_剑网3大脚插件如何添加?插件添加及用法介绍
  6. Python下的整数的因式分解
  7. Mavic2、T系列植保无人机
  8. 一步一步实现自己的vue
  9. 12V转5V电源--MP2359用法
  10. Android开发书籍大全