在C#中获取数组中最大的元素
本文关键字:元素 数组 获取 | 更新日期: 2023-09-27 18:29:55
我想找到数组中最大的元素。
代码
static int FindBiggestElementInAnArray(int[] nums)
{
int aaa = 0;
for (int n = 0; n < nums.Length; n++)
{
for (int a = 0; a < nums.Length; a++)
{
if (nums[n] >= nums[a])
{
aaa++;
if (a == nums.Length - 1 && aaa == nums.Length)
{
return n;
}
}
}
aaa = 0;
}
return 0;
}
static void Main(string[] args)
{
int[] numbers = { 1, 3, 5, 3, 2, 7, 5, 9, 3, 34, 5 };
Console.Write(FindBiggestElementInAnArray(numbers));
}
我得到了9
,但我希望得到34
。
如何解决此问题?
您可以循环遍历数组以获得最大值,并且只需要保留迄今为止找到的最大值,因此:
int max = Int32.MinValue;
for (var i = 0; i < array.Length; i++)
{
if (array[i] > max) {
max = array[i];
}
}
Console.WriteLine(max);
您也可以使用.Max()
,它可以在后台执行此操作。
这里有一个简单的Max()
函数
static int Max(params int[] ints){
var maxInt = int.MinValue;
foreach(var number in ints){
if (number > maxInt) {
maxInt = number;
}
}
return maxInt;
}
正在工作的网络小提琴
编辑:顺便说一句,你应该在原来的帖子中返回nums[n]
,而不是n
。34
位于您传入的数组中的索引9
处,这就是为什么您得到的答案是9
,而不是nums[9]
,即34
。
这是这个解释的dotnetfiddle