2016-07-08 3 views
1

이제 광산과 유사한 다른 많은 질문을 살펴 보았습니다. 그러나 어떤 이유로 평균을 계산할 때 사용자가 입력 한 배열을 얻는 방법을 이해하지 못합니다. 내 질문과 비슷한 질문이 있으면 참조 할 수있는 방식으로 링크를 보내주십시오. 정말 고맙습니다.배열에서 입력 한 숫자를 표시하려고합니다.

"5 개 정수 입력하십시오 : 25 43 12 5 7"내가 표시 할

를 "당신은 입력 : 25 43 12 5 7 평균 __이다"

public class CalcAvg { 

    public static void main(String[] args) {  

     double [] userinput = getArrayInfo(); 
     double average = CalculateAvg(userinput); 
     getAvg(userinput, average); 

    } 

    public static double[] getArrayInfo() { 
    Scanner in = new Scanner(System.in); 
    final int NUM_ELEMENTS = 5; 
    double[] userinput =new double[NUM_ELEMENTS]; 
    int i = 0; 

    System.out.println("Please enter 5 integers: "); 
     for (i = 0; i < NUM_ELEMENTS; ++i) {   
     userinput[i] = in.nextDouble(); 
     }  

    return userinput; 
    } 

    public static double CalculateAvg(double[] userinput) { 
     double sum = 0; 
     double average = 0; 
     for (int i = 0; i < userinput.length; i++) { 
     sum = sum + userinput[i];   
    }   
     average = sum/userinput.length; 

     return average; 
    } 

    public static void getAvg(double[] userinput, double average) { 
     int i = 0; 
     System.out.println("The average of the numbers " + userinput + " is " +average); 
    } 
} 
+0

당신을 도울 수 있습니다 : [Java 배열을 인쇄하는 가장 간단한 방법은 무엇입니까?] (http://stackoverflow.com/questions/409784/whats-the-simplest-way-to-print-a-java-array) –

+0

^네,하지만 Java 배열 ('Arrays.toString (array)')을 인쇄하는 가장 간단한 방법은 쉼표와 대괄호로 묶을 것이고, 배열은 원하는 형식이 아닙니다. – ifly6

답변

1

원하는 방식으로 배열을 표시하는 String을 생성하려면 아마도 모든 String 작업을 수행하는 메소드를 만들고 코드를 반복하지 않아도됩니다. for 루프를 사용하여 배열을 반복하여 StringBuilder을 사용하여 String을 만듭니다.

public String arrayToString(double[] input) { 

    StringBuilder builder = new StringBuilder(); // declare this outside of the loop 
    for (double dub : input) { 
     builder.append(dub + " "); 
    } 

    return builder.toString().trim(); // get rid of trailing spaces 
} 

그런 다음,이를 구현하기 위해, System.out.println("The average of the numbers " + arrayToString(userinput) + " is " + average)에 선 System.out.println("The average of the numbers " + userinput + " is " +average)을 변경합니다.

또한 명명 규칙에 따라 CalculateAvg()calculateAvg()이됩니다. 또한 현재 사용중인 계수 변수 대신 int x : userinput으로 '향상된 for 루프'를 사용하여 for 루프를 반복 할 수 있습니다.

0

모든 클래스는 Object를 상속하므로 toString() 메서드가 있습니다. 배열을 인쇄하려고하면 (자), 객체의 클래스 명 표현을 돌려주는 toString() 메소드를 호출 해, 그 후에 해시 코드에 이어 "@"를 호출합니다.

해결책은 다음과 같습니다 요소를 통해

System.out.println(java.util.Arrays.toString(arr)); 

또는 루프를 하나씩 인쇄 할 수 있습니다.

관련 문제