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.排序法 首先我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一 ...
随机推荐
- GMA Round 1 逃亡
传送门 逃亡 你在森林中,遇到了一只老虎.此时此刻,老虎在(0,0)的位置,你在(2,1)的位置. 你开始沿着一条林间小路逃亡,移动向量是$(\frac{\sqrt{6}}{2},\frac{\sqr ...
- Java中定义常量方法及建议(Class/Interface)
Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public s ...
- layui常见问题记录
1.用js选中checkbox,没有效果 解决方式:加入 form.render(); 重新渲染表单 $(this).prop('checked', true); //在新版本的jquery中,如果是 ...
- Chart:Grafana
ylbtech-Chart:Grafana 1.返回顶部 1-1. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https://grafana.com/ 1. http: ...
- spring boot swagger-ui.html 404
很奇怪的问题,找了好久. 因为spring boot+swagger实现起来很简单.看下面三部曲: 1.pom添加两个swagger依赖. <!-- Swagger依赖包 --> < ...
- Python 汉字转拼音
本文参考: Python中文转拼音代码(支持全拼和首字母缩写) 中文中不可以有“()” # -*- coding: utf-8 -*- __version__ = '0.9' __all__ = [& ...
- String类源码解析
1. String是使用char[]数组来存储的,并且String值在创建之后就不可以改变了.char[]数组的定义为: /** The value is used for character sto ...
- iOS获取当前城市
1.倒入头文件 #import <CoreLocation/CoreLocation.h> 2.实现定位协议CLLocationManagerDelegate 3.定义定位属性 @prop ...
- 理解Java注解类型
一. 理解Java注解 注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类.而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象$Proxy ...
- Spark 官方博文专区(目录)
关于转载一些 Spark 官方的文档以及 DataBricks 公司博文,本系列基本是中英双语,主要是为了提高自己的英语水平. 文章分类 spark databricks A Tale of Thre ...