繁体   English   中英

使用递归查找最大数组数的代码始终返回数组中的最后一项

[英]Code to find the maximum number of array using recursion always returns the last item in the array

以下代码将始终写入0 为什么会这样,我该如何解决?

public static void main(String[] args) 
{
    int[] Array= {5,4,6,3,7,2,8,1,9,0};
    int max=0;
    System.out.println(maximum(Array,Array.length-1,max));
}

public static int maximum(int[] Array,int length,int max)
{
    if (length!=0)
    {
        if(max<Array[length])
        {
            max=Array[length];
        }

        maximum(Array,length-1,max); 
    }

    return max;  
}

当你调用maximum递归,你不写返回值。

    if (length!=0)
    {
        if(max<Array[length])
        {
            max=Array[length];
        }

        max = maximum(Array,length-1,max); //rewrite max variable
    }

    return max;

编辑

并且需要将第一个max初始化为Array[0]

int max=Array[0];
System.out.println(maximum(Array,Array.length-1,max));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM