我想找到数组中最大的元素。
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
。
如何解决此问题?
答案 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;
}
编辑:作为旁注,您应该在原始帖子中返回nums[n]
,而不是n
。 34
位于您传入的数组中的索引9
,这就是为什么您获得答案9
而不是nums[9]
,即34
。