Я пытаюсь вернуть максимальный элемент из массива с помощью рекурсии
вот мой кодне может вернуть максимальный элемент
static void Main(string[] args)
{
int[] Array=new int[]{10,233,34};
int _MaxVal = CalculateMax(Array, 0, 0);
Console.WriteLine(_MaxVal);
Console.ReadKey();
}
private static int CalculateMax(int[] Array, int Startpos, int maxval)
{
if (Startpos != Array.Length)
{
if (Array[Startpos] > maxval)
{
maxval = Array[Startpos];
}
CalculateMax(Array, ++Startpos, maxval);
}
return maxval;
}
Я получаю MAXVAL как 10.
Что в этом плохого?
Спасибо всем
Вы также хотите выполнить 'maxval = CalculateMax (Array, ++ Startpos, maxval);'? – Jonny
Вы не принимаете во внимание возвращаемое значение 'CalculateMax()', когда вы вызываете его рекурсивно. –
Вы знаете, что можете сделать '= Array.Max()', правильно? –