0 c#
我试图使用递归从数组返回最大元素
这里是我的代码
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;
}
Run Code Online (Sandbox Code Playgroud)
我得到MaxVal为10.
这有什么问题?
谢谢大家
你失去了价值maxval.
试试这个:
maxval = CalculateMax(Array, ++Startpos, maxval);
Run Code Online (Sandbox Code Playgroud)
除非您将此作为个人练习或作业,否则您可以使用LINQ更优雅地处理这种方式:
var maxValue = Array.Max();
Run Code Online (Sandbox Code Playgroud)