用户输入数组(JAVA)的递归函数

时间:2015-01-22 16:02:37

标签: java recursion

我试图找出如何将变量从我的主方法传递到另一个方法?

我的主要目标是制作一个将用户输入传递给数组的递归程序。然后使用递归函数打印出最大的整数。这就是我到目前为止所做的。

import java.io.* ;
import java.util.Scanner;
public class MaxElement {



public static void main(String args[]){

// Initialize the number array
int[] Number;


 Number = new int [5];

 Scanner lop = new Scanner(System.in);
 System.out.println(" Please enter 5 numbers.");

String a= lop.nextLine();
 int f = Integer.parseInt(a);
Number[0]=f;
System.out.println("Enter 4 more numbers.");

String b= lop.nextLine();
 int g = Integer.parseInt(b);
Number[1]=g;
System.out.println("Enter 3 more numbers.") ;

String c= lop.nextLine();
 int h = Integer.parseInt(c);
Number[2]=h;
System.out.println("Enter 2 more numbers.");    

String d= lop.nextLine();
 int i = Integer.parseInt(d);
Number[3]=i;
System.out.println("Enter 1 more number.");

String e= lop.nextLine();
 int j = Integer.parseInt(e);
Number[4]=j;

lop.close();
System.out.println( f+g+h+i+j);
}
 void MaxElements() {
    MaxElement M = new MaxElement();
    M.f= k;

2 个答案:

答案 0 :(得分:0)

  

我正在试图弄清楚如何将变量从我的main方法传递给另一个?

这是一种方法。

private static String getName(BufferedReader input) {
    System.out.println("Do You Remember What Your Name Is?");
    try {
        String name = input.readLine();
        return name;
    } catch (IOException ioe) {
        ioe.printStackTrace();
        return "";
    }
}

这就是你在主方法中要做的事情。

    String name = getName(input);

递归方法只是一种从方法内部调用直到满足条件的方法。您的输入代码可以替换为以下代码。

package com.ggl.fse;

import java.util.Scanner;

public class Recursive {

    public static void main(String[] args) {
        Scanner lop = new Scanner(System.in);

        int length = 5;
        int[] numbers = new int[length];
        String s = "Please enter " + length + " numbers.";
        System.out.println(s);

        numbers = getNumbers(lop, numbers, 0, length);

        for (int i = 0; i < length; i++) {
            System.out.println(numbers[i]);
        }

        lop.close();
    }

    private static int[] getNumbers(Scanner lop, int[] numbers, 
            int index, int length) {
        String s = lop.nextLine();
        int a = Integer.parseInt(s);
        numbers[index] = a;

        if (index < (length - 1)) {
            s = "Enter " + (length - index - 1) + " more numbers.";
            System.out.println(s);
            getNumbers(lop, numbers, ++index, length);
        }

        return numbers;
    }

}

答案 1 :(得分:0)

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

类递归 {

      static int max(int n,int max)
        {

            return n>max?n:max; 
        }

     static  int  test(int []a,int n,int max)
        {

            if(n==a.length)
             {
                 return max;
             }
           return test(a,n+1,max(a[n],max));



         }
public static void main(String[] args)throws IOException {
    InputStreamReader r=new InputStreamReader(System.in);  
    BufferedReader br=new BufferedReader(r); 
    int arr[]=new int[7];
    System.out.print("enter the elements ");
    for(int i=0;i<6;i++)
    {
        arr[i]=Integer.parseInt(br.readLine());
    }

    int max=test(arr,0,0);

的System.out.println(最大值);     }

}