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 с помощью StringBuilder, итерации по массиву с помощью цикла for.

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 " + userinput + " is " +average) на System.out.println("The average of the numbers " + arrayToString(userinput) + " is " + average).

Также, CalculateAvg(), следующие соглашения об именах, будут calculateAvg(). Вы также можете перебирать цикл for, используя «расширенный для цикла» с int x : userinput вместо переменных подсчета, которые вы используете в настоящее время.

0

Все классы наследуются от Object и поэтому имеют метод toString(). Когда вы пытаетесь распечатать массив, он вызывает метод toString(), который возвращает представление имени класса объекта, а затем «@», за которым следует его хэш-код.

Раствор будет:

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

Или перебрать элементы для печати их один за другим.

Смежные вопросы