计算两个数平均数的三种方法
第一种方法
- 思路:两数相加然后除以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;}
计算两个数平均数的三种方法相关推荐
- 计算两个数平均值的三种方法
第一种方法: 思路:两数相加求和再除2 代码 int a=10;int b=20;int avg=0;avg=(a+b)/2;//平局值//或者avg=(a+b)>>1://右移表示除2, ...
- 计算两个数的平均值几种方法
方法一:直接求平均值(两个数相加再除以二) int average(int x,int y){return (x + y) / 2; } 这种算法存在着一定的缺陷,当x和y足够大时x和y的和就会存在数 ...
- PHP保留两位小数的三种方法
PHP保留两位小数的三种方法 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 /*** PHP保留两位小 ...
- Python除法保留两位小数点(三种方法实现)
Python除法保留两位小数点(三种方法实现) 前言序锦 学过编程我们都知道,无论什么语言,其实都是相通的,,当我们学会了并掌握好了一种语言后,我们再去了解另外一种语言,其实就很容易了,今天我们就来一 ...
- js合并两个数组的三种方法
js合并数组的三种方法 前提:两个数组a=[1,2,3,4].b=[5,6,7],将其合并为一个数组 1. concat //js的Array对象提供了一个叫concat()方法,连接两个或更多的数组 ...
- 交换两个整型变量的三种方法
在学习C语言的过程中,我们都会遇到的一个题目就是:交换两个整型的变量:今天我将讲解三种方法供大家开拓视野!!! 法一: 新建一个整型变量c,假设我们要交换a b两个整型变量的值,我们先把a变量的内容存 ...
- C语言中比较两数的大小——三种方法
定义a = 10,b = 20,以下为三种比较方式: 一.if-else法 #include<stdio.h> int main(){int a = 10;int b = 20;int r ...
- python比较两个二进制文件_python三种方法判断文件是否为二进制文件
两种方法判断文件是否为二进制文件,最准确的就是把这两种方法结合起来. (1)方法一: 它首先检查文件是否以BOM开始,如果不在初始8192字节内查找零字节: import codecs file_pa ...
- 两个数字交换的三种方法
今天偶然看到了有一篇文章讲解了交换两个数字的方法,感觉很新颖,拿来说一下. 这种问题通常都是我们在学习java基础的时候可能就会做一些小练习,相信大多数人都能够做出来,但是解决问题的办法多种多样,如何 ...
最新文章
- html资源文件记载进度条,用进度条显示文件读取进度《 HTML5:文件 API 》
- mgr未同步 mysql_MySQL Group Replication(多主同步复制MGR)
- 医疗影像网络PACS系统方案
- thinkphp+ajax无刷新分页并加载显示图片
- AtCoder AGC038F Two Permutations (网络流、最小割)
- 灵图天行者9 pc版_原神PC预下载现已开启
- resource.arsc二进制内容解析 之 RES_TABLE_TYPE_TYPE (Config List)
- 假设检验方差未知_设计云数据库时如何处理未知数并做出假设
- CSS3响应式bootstrap模板
- C语言博客作业06--结构体文件
- LeetCode —— 332. 重新安排行程(Python)
- 日记背景 android,只是意外 - 用这些 APP 来记录生活,再也不用担心无法坚持写日记 - Android 应用 - 【最美应用】...
- 简单的计算机英语文章,简单的英语小短文欣赏
- 通过Filter统一全站编码
- 深度学习:循环神经网络(RNN)
- 计算机专业过度饱和,教育部:撤销518个本科专业,计算机专业也被撤销,市场饱和了?...
- Java删除文件和文件夹的方式
- app逆向 安卓开发环境搭建
- Ubuntu安装OpenCV4记录
- JAV学习笔记—IO相关类