原文链接:
https://www.cnblogs.com/xueyubao/p/11260634.html
C#基础算法题 找出最大值和最小值
找出最大值和最小值
题目要求
输入n个数,n<=100,找到其中最小的数和最大的数
实现代码方案一:
using System;
namespace _1.求最大最小
{
class Program
{
public static int GetMax(int[] numbers)
{
int max = numbers[0];
for (int i = 0; i < numbers.Length; i++)
{
if (max < numbers[i])
{
max = numbers[i];
}
}
return max;
}
public static int GetMin(int[] numbers)
{
int min = numbers[0];
for (int i = 0; i < numbers.Length; i++)
{
if (min > numbers[i])
{
min = numbers[i];
}
}
return min;
}
static void Main(string[] args)
{
string[] temp = Console.ReadLine().Split(' ');
int[] numbers = new int[temp.Length];
for (int i = 0; i < temp.Length; i++)
{
numbers[i] = Convert.ToInt32(temp[i]);
}
Console.WriteLine("Max = " + GetMax(numbers));
Console.WriteLine("Min = " + GetMin(numbers));
Console.ReadKey();
}
}
}
实现代码方案二:
C# 1-20个数,找到指定的最大数
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20找出第8个最大的数即是:13找出第2个最大的数即是:19找出第9个最大的数即是:12
//using System.Linq;
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
Console.WriteLine(F(nums, 8));
Console.WriteLine(F(nums, 2));
Console.WriteLine(F(nums, 9));
Console.ReadLine();
}
static int F(int[] nums, int index)
{
var v = nums.Distinct().OrderByDescending(x => x).ToArray();
return (int)v[index - 1];
}
int[] array = new int[] { 1, 10, 2, 13, 3, 4, 5, 6, 7, 8, 17, 9, 11, 12, 14, 15, 16, 18, 19, 20 };
Array.Sort(array);
int maxTop8 = 0;
int maxTop9 = 0;
int maxTop2 = 0;
maxTop2 = array[array.Length - 2];
maxTop8 = array[array.Length - 8];
maxTop9 = array[array.Length - 9];
C# Linq获取List列表中某个字段最大值对应的记录
List
方法1:
试了Max()取最大值的方法,但是方法返回的是一个特定的值,而不是对应的一条记录;有些不方便,当然也是可以如下方法实现:
//取出最大值
var maxValue = epList.Max(x => x.value);
//从列表中匹配值等于最大值的第一项
T item = epList .Where(x => x.value == maxValue ).FirstOrDefault();
方法2:
可以换个思路,按数值对列表进行倒序(OrderByDescending()),取倒叙后的第一条记录:
T item = epList.OrderByDescending(x => x.value).FirstOrDefault();