C#获取一个数组中的最大值、最小值、平均值
C#获取一个数组中的最大值、最小值、平均值
1.给出一个数组
int[] array = new int[] { ,,,,,-,,,,};
2.数组Array自带方法
本身是直接可以调用Min(),Max(),Average()方法来求出 最小值、最大值、平均值
Console.WriteLine("--------------Array自身方法-----------------");
Console.WriteLine("Min:{0}",array.Min());
Console.WriteLine("Max:{0}", array.Max());
Console.WriteLine("Average:{0}", array.Average());
输出结果:
--------------Array自身方法-----------------
Min:-
Max:
Average:62.4
3.编码实现
最小值
/// <summary>
/// 最小值
/// </summary>
/// <param name="array"></param>
/// <returns></returns>
public static int Min(int[] array)
{
if (array == null) throw new Exception("数组空异常");
int value = ;
bool hasValue = false;
foreach (int x in array)
{
if (hasValue)
{
if (x < value) value = x;
}
else
{
value = x;
hasValue = true;
}
}
if (hasValue) return value;
throw new Exception("没找到");
}
最大值
/// <summary>
/// 最大值
/// </summary>
/// <param name="array"></param>
/// <returns></returns>
public static int Max(int[] array)
{
if (array == null) throw new Exception("数组空异常");
int value = ;
bool hasValue = false;
foreach (int x in array)
{
if (hasValue)
{
if (x > value)
value = x;
}
else
{
value = x;
hasValue = true;
}
}
if (hasValue) return value;
throw new Exception("没找到");
}
平均值
/// <summary>
/// 平均值
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static double? Average(int[] array)
{
if (array == null) throw new Exception("数组空异常");
long sum = ;
long count = ;
checked
{
foreach (int? v in array)
{
if (v != null)
{
sum += v.GetValueOrDefault();
count++;
}
}
}
if (count > ) return (double)sum / count;
return null;
}
4.测试输出
测试代码
static void Main(string[] args)
{
int[] array = new int[] { ,,,,,-,,,,}; Console.WriteLine("--------------Array自身方法-----------------");
Console.WriteLine("Min:{0}",array.Min());
Console.WriteLine("Max:{0}", array.Max());
Console.WriteLine("Average:{0}", array.Average()); Console.WriteLine("---------------内部实现方法------------------");
int min = Program.Min(array);
int max = Program.Max(array);
double? average = Program.Average(array);
Console.WriteLine("Min:" + min);
Console.WriteLine("Max:" + max);
Console.WriteLine("Average:" + average);
Console.Read();
}
输出结果

以上代码也是从.NET Framework中摘出来的,实际上 Array的自带求最大值、最小值、平均值的算法就是这样做的,在.NET Framework源码中可以看到
5.工程源码下载
源代码下载
C#获取一个数组中的最大值、最小值、平均值的更多相关文章
- PHP获取以为数组中的最大值和最小值
1.PHP获取一维数组中的最大值 <?php $a=array('1','3','55','99'); $pos = array_search(max($a), $a); echo $a[$po ...
- js中关于一个数组中最大、最小值以及它们的下标的输出的一种解决办法
今天在学习js中的数组时,遇到的输出一个数组中最大.最小值以及它们的下表,以下是自己的解决方法! <script type="text/javascript"> var ...
- js获取数组中的最大值/最小值
目录 前言 1. 使用Math的静态方法max/min 1.1 结合ES6的扩展运算符...使用 1.2 结合apply/call方法来使用 1.3 结合reduce来使用 2. 排序获取 2.1 只 ...
- Java求一个数组中的最大值和最小值
原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/9927186.html 今天在工作中遇到对一个已知的一维数组取出其最大值和最小值,分别用于参与 ...
- js中快速获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a)); //最小值 多维数组如下 v ...
- js获取数组中的最大值最小值
遍历方法: var tmp = [1,12,8,5]; var max = tmp[0]; for(var i=1;i<tmp.length;i++){ if(max<tmp[i])max ...
- js中如何快速获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...
- js中获取数组中的最大值最小值
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修 ...
- Javascript获取数组中最大和最小值
取出数组中最大值或最小值是开发中常见的需求,今天继续讲解如何获取javascript数组中最大和最小值. 1.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一 ...
随机推荐
- 【组合数】微信群 @upcexam6016
时间限制: 1 Sec 内存限制: 128 MB 题目描述 众所周知,一个有着6个人的宿舍可以有7个微信群(^_^,别问我我也不知道为什么),然而事实上这个数字可以更大,因为每3个或者是更多的人都可以 ...
- 轻量级的Web框架——Nancy
最近想找一个简单的.Net下的轻量级Web框架,作为用户的本地的一个WebServer,实现同浏览器程序的一些简单交互,并调用本地服务,实现类似浏览器插件的功能.它有如下几点要求: 简单,能快速账务, ...
- 《软件性能测试与LoadRunner实战教程》喜马拉雅有声图书上线
工作忙的同学们有福了,可以听书了. 于涌老师的<软件性能测试与LoadRunner实战教程>喜马拉雅有声图书上线.
- 2012服务器在IIS部署的SLL(https)网址谷歌浏览器无法访问的问题解决
服务器环境:Windows Server 2012,IIS8. 当绑定了https,使用IE和Firefox浏览器能够正常访问,但是使用谷歌浏览器会出现net::ERR_CONNECTION_ABOR ...
- std::vector push_back报错Access violation
C/C++ code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include < ...
- 洛谷 P1739 表达式括号匹配
题目链接https://www.luogu.org/problemnew/show/P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为 ...
- [STF手机设备管理平台]连接其它操作系统上的安卓设备实操介绍
一.背景 看到之前曾有人发贴,贴名[stf 连接各操作系统上安卓设备的操作方法分享],介绍了一下,虽然说方法和理论都有,但下述评论中还是有很多人不知如何操作,特别是不知道stf provider命令如 ...
- exp导出数据时丢表
友军发来消息,说使用exp导出某个schema的数据的时候,发现有些表没有导出来.因为一直没有使用exp的习惯,就使用exp\expdp再次导出一次,分析二者的日志,发现exp的确有些表没有导出. 问 ...
- Effective Java 第三版—— 87. 考虑使用自定义序列化形式
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- PHP-问题处理Fatal error: Uncaught Error: Call to undefined function simplexml_load_file()
1.问题 今天重新安装了ubuntu,PHP,MySQL,Apache,到测试CMS项目时发生一个错误: Fatal error: Uncaught Error: Call to undefined ...