Вывести среднюю температуру по больнице и количество здоровых пациентов

Есть вот такой код:

public static final int PATIENTS_COUNT = 30;
public static final int MIN_TEMP = 32;
public static final int MAX_TEMP = 40;
public static final double MIN_TEMP_HEALHTY = 36.2;
public static final double MAX_TEMP_HEALHTY = 36.9;

DecimalFormat decimalFormat = new DecimalFormat("#.#");
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols();
otherSymbols.setDecimalSeparator('.');
DecimalFormat decimalFormat1 = new DecimalFormat( "#.#", otherSymbols);
float[] patients = new float[PATIENTS_COUNT];
for (int i = 0; i < patients.length; i++) {
    String result = decimalFormat1.format((float) (Math.random() * (MAX_TEMP - MIN_TEMP)) + MIN_TEMP);
    float f = Float.parseFloat(result);
    System.out.println("Температура пациентов: " + f + "\nСредняя температура:" + "\nКоличество здоровых пациентов:");
}

Мне нужно вывести среднюю температуру. Как высчитывать среднее число - я знаю, но не могу применить на практику.

В консоли вывод к каждой температуре отдельный, а нужно, чтоб был такой:

Температура пациентов: 35,2, 36,3, 36,1....

Средняя: 34,3.

Я вообще не понимаю как правильно сделать это. Можете подсказать? Что почитать, куда смотреть и т.д.?

По идее, нужно заполнить значением result массив patients. Нужно к индексу i в массиве записать значение из result. Как правильно это сделать, не понимаю.


Ответы (1 шт):

Автор решения: Aziz Umarov

вот так попробуйте

package test;

import java.io.IOException;
import java.math.*;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class App {

  public static final int PATIENTS_COUNT = 30;
  public static final int MIN_TEMP = 32;
  public static final int MAX_TEMP = 40;
  public static final double MIN_TEMP_HEALHTY = 36.2;
  public static final double MAX_TEMP_HEALHTY = 36.9;

  public static void main(String[] args) throws IOException {

    DecimalFormat decimalFormat = new DecimalFormat("#.#");
    DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols();
    otherSymbols.setDecimalSeparator('.');
    DecimalFormat decimalFormat1 = new DecimalFormat("#.#", otherSymbols);
    String[] patients = new String[PATIENTS_COUNT];
    for (int i = 0; i < patients.length; i++) {
      patients[i] = Float.toString((float) Math.random() * (MAX_TEMP - MIN_TEMP) + MIN_TEMP);
    }

    float average = 0;
    for (int i = 0; i < patients.length; i++) {
      average += Float.parseFloat(patients[i]);
    }
    average /= patients.length;

    System.out.println(
        "Температура пациентов: "
            + String.join(",", patients)
            + "\nСредняя температура:"
            + average
            + "\nКоличество здоровых пациентов:");
  }
}
→ Ссылка