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

时间:2016-01-12 16:31:43

标签: c# arrays

我想找到数组中最大的元素。

代码

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

如何解决此问题?

2 个答案:

答案 0 :(得分:4)

您可以遍历数组以获得最大值,您只需要保留到目前为止找到的最大值,所以:

int max = Int32.MinValue;
for (var i = 0; i < array.Length; i++)
{
   if (array[i] > max) {
     max = array[i];
   }
}
Console.WriteLine(max);

您也可以使用.Max(),并在后台执行此操作。

答案 1 :(得分:2)

这是一个简单的Max()函数

static int Max(params int[] ints){
    var maxInt = int.MinValue;
    foreach(var number in ints){
        if (number > maxInt) {
            maxInt = number;    
        }
    }
    return maxInt;
}

工作dotnetfiddle

编辑:作为旁注,您应该在原始帖子中返回nums[n],而不是n34位于您传入的数组中的索引9,这就是为什么您获得答案9而不是nums[9],即34

以下是dotnetfiddle for this explanation