在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

如何解决此问题?

在C#中获取数组中最大的元素

您可以循环遍历数组以获得最大值,并且只需要保留迄今为止找到的最大值,因此:

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],而不是n34位于您传入的数组中的索引9处,这就是为什么您得到的答案是9,而不是nums[9],即34

这是这个解释的dotnetfiddle