【发布时间】:2014-02-09 15:34:11
【问题描述】:
以下程序是一个递归程序,用于查找数组的最大值和最小值。(我认为!请告诉我它是否不是有效的递归程序。虽然有更简单的方法来查找数组中的最大值和最小值,我以递归方式做只是作为练习的一部分!)
此程序正常运行并按预期产生输出。
在我标记“这里怀疑!”的注释行中,我无法理解为什么在编译过程中没有给出错误。返回类型显然是一个整数数组(在方法定义中指定),但是我没有将返回的数据分配给任何整数数组,但程序仍然可以工作。如果我这样做,我预计在编译过程中会出错,但它确实有效。如果有人能帮我解决这个问题,那会很有帮助! :)
import java.io.*;
class MaxMin_Recursive
{
static int i=0,max=-999,min=999;
public static void main(String[] args) throws IOException
{
BufferedReader B = new BufferedReader(new InputStreamReader(System.in));
int[] inp = new int[6];
System.out.println("Enter a maximum of 6 numbers..");
for(int i=0;i<6;i++)
inp[i] = Integer.parseInt(B.readLine());
int[] numbers_displayed = new int[2];
numbers_displayed = RecursiveMinMax(inp);
System.out.println("The maximum of all numbers is "+numbers_displayed[0]);
System.out.println("The minimum of all numbers is "+numbers_displayed[1]);
}
static int[] RecursiveMinMax(int[] inp_arr) //remember to specify that the return type is an integer array
{
int[] retArray = new int[2];
if(i<inp_arr.length)
{
if(max<inp_arr[i])
max = inp_arr[i];
if(min>inp_arr[i])
min = inp_arr[i];
i++;
RecursiveMinMax(inp_arr); //Doubt here!
}
retArray[0] = max;
retArray[1] = min;
return retArray;
}
}
【问题讨论】:
-
是的,但我会尝试其他方法来让程序正常工作!我刚试过这个。值得一试! :D :)