2016-04-28 4 views
0

Я смотрел урок онлайн о массивах. Он научил меня «основам» списков массивов: как создать список массивов. Поэтому мне было интересно, как можно было бы создать список массивов из ввода пользователей (JOptionPane), извлечь из него цифры, добавить их и разделить на общее количество чисел в списке массивов (длинный рассказ короткий, вычислить среднее значение массива)?Как извлечь числа из списка массивов, добавить их и разделить на количество чисел в списке массивов?

Вот мой, несколько из подхода:

import java.util.Arrays; 
import javax.swing.JOptionPane; 
public class JOptionPaneTesting { 

    public static void main(String[] args){ 
     int grades = Integer.parseInt(JOptionPane.showInputDialog("What are your grades of this month?")); 
     int arrayList[] = {Integer.valueOf(grades)}; 
     int arraysum; 
     arraysum = arrayListGetFirstIndex + arrayListGetSecondIndex + ...; //Extracts all of the indices and adds them up? 
     int calculation; 
     calculation = arraysum/arrayListAmmountOfNumbersInTheList; //An example of how it go about working 
    } 
} 

ответ

1

Это было бы подходящим решением тоже:

String[] input = JOptionPane.showInputDialog("What are your grades of this month?").split(" "); 
     double[] grades = new double[input.length]; 
     double average = 0.0; 
     for (int i = 0; i < input.length; i++) { 
      // Note that this is assuming valid input 
      grades[i] = Double.parseDouble(input[i]); 
      average+=grades[i]; 
     } 
     average /= grades.length; 

Таким образом, вы можете ввести в несколько «классов» разделённых пробельные.

+0

Спасибо! Это больше всего подходит моему вопросу и проще всего понять. Но меня все еще беспокоит. Какова основная цель этой строки 'for (int i = 0; i

+0

Рад помочь! Не стесняйтесь принять мой ответ, если вы считаете, что это было полезно для вас. ;) «i» - это просто переменная, которая принимает значения элементов итерируемого объекта. –

+0

_ «Не стесняйтесь принимать мой ответ, если вы считаете, что это было полезно для вас.;)« _, Уже было. И спасибо за объяснение. –

0

сначала создать список

List<Integer> list = new ArrayList<Integer>();` 

затем list.add(grade); вам нужно перебирать весь выше линии, если вы хотите добавить более одного сорта. затем list.get(index) получите конкретный (индексный) класс.

для расчета использования arraySum:

for(int i = 0; i < list.size() ; i++) 
    arraysum += list.get(i); // and others are same. 

Я надеюсь, что это поможет вам!

+0

Умм ... Это поможет, но я не знаю общее количество оценок. Как я могу это предсказать? –

+0

chech мой ответ, он обновлен. –

1

Насколько я понимаю, вы пытаетесь получить информацию от пользователя. Ввод - это оценки. Затем вы хотели бы добавить оценки и рассчитать среднее значение оценок.

public static double calculateAvg(List<Double>inputGrades){ 
     List<Double> grades = new ArrayList<Double>(inputGrades); 
     double totalScore = 0.0; 
     double avgScore = 0.0; 
     if(grades !=null && grades.size()>0){ 
      for(Double grade : grades){ 
       totalScore = totalScore + grade; 
      } 
     avgScore = totalScore/grades.size(); 
     } 

     return avgScore; 
    } 

Принимая пользовательский ввод и добавление его в список

List<Double> gradesList= new ArrayList<Double>(); 
       gradesList.add(25.5); 
       gradesList.add(29.5); 
       gradesList.add(30.5); 
       gradesList.add(35.5); 
     System.out.println(calculateAvg(gradesList)); 
+0

Я считаю, что этот ответ тоже сработал бы, но ему было трудно понять это (как я начинаю на Java) и заставить его работать. Тем не менее, спасибо за ваше время. –

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