Вычисление сумм и средних значений введенных чисел и сортировка чисел в Eclipse

Проблема: напишите программу, которая считывает от пользователя пять целых чисел. Программа рассчитает и выведет

следующая статистика о пяти числах:

The sum of all of the positive numbers (greater than zero).

The sum of all of the non-positive numbers (less than or equal to zero).

The sum of all five numbers.

The average of all of the positive numbers (greater than zero).

The average of all of the non-positive numbers (less than or equal to zero).

The average of all five numbers.

Вот что у меня есть для моего кода:

package assignment_09_20_2018;

import java.util.Scanner ; 

public class LAB_Assignment_09_20_2018 {

    public LAB_Assignment_09_20_2018() {
        // TODO Auto-generated constructor stub


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int length; 

        Scanner input = new Scanner(System.in) ;
        //opens scanner

        System.out.println("Enter 5 numbers: ") ;

        length = input.nextInt() ; 

        Int[] numbers = new Int[length]


    }
} 

кто-то из моего класса сказал использовать массивы и циклы, но я понятия не имею, как это сделать, пожалуйста, помогите

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
743
3

Ответы 3

Вы можете использовать массив и цикл, как показано в приведенном ниже коде. Я использую массив int [] для хранения 5 чисел, вводимых пользователем, и заполняю их с помощью цикла for.

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

        Scanner input = new Scanner(System.in) ;
        System.out.println("Enter 5 numbers: ") ;
        int[] array = new int[5];
        for(int i=0;i<array.length;i++) {
            array[i] = input.nextInt();
        }
        for(int i=0;i<array.length;i++) {
            System.out.println(array[i]);
        }
}

Теперь вы можете использовать цикл for и охватить все случаи, указанные в вопросе.

Например: The sum and average of all five numbers можно рассчитать, как показано ниже:

//sum of all 5 numbers

int sum=0;
for(int i=0;i<array.length;i++) {
    sum += array[i];
}
System.out.println(sum); // Prints the sum of 5 numbers
int average = sum/array.length;
System.out.println(average); // Prints the average of 5 numbers

Обновлено: Код для sum of positive numbers and negative numbers only

int posSum=0;
int negSum=0;
for(int i=0;i<array.length;i++) {
    if (array[i]>0){
        posSum += array[i];
    }else if (array[i]<0){
        negSum += array[i];
    }
}
System.out.println("Positive number only sum is "+posSum);
System.out.println("Negative number only sum is "+negSum);

Как мне найти сумму и среднее только положительных и отрицательных чисел? Я все еще немного запутался в правильном синтаксисе оператора if-else

JVinitsky 20.09.2018 18:50

@JVinitsky Я обновил ответ для расчета sum of positive and negative numbers using one for loop

Yug Singh 20.09.2018 19:02

Спасибо!! Это было очень полезно

JVinitsky 20.09.2018 19:09

@JVinitsky, если вы нашли ответ полезным, отметьте его как принятый, нажав на галочку слева от этого ответа под кнопкой «за» / «против».

Yug Singh 20.09.2018 19:24

Отказ от ответственности, я парень C#, поэтому мой синтаксис может быть не совсем правильным.


Создайте цикл для приема чисел в массив.

Int [] numbers = new Int [5]{};

for (Int i = 0; i < numbers.Length; i++)
{
    System.out.println("Enter a number.");
    numbers[i] = Scanner(System.in);
}

Затем используйте математические вычисления в массиве с комбинацией операторов if для определения значений <или>.

for (Int i = 0; i < numbers.Length; i++)
{
   if ( numbers[i] < 0)
      {
         // do this math
      }
else if (numebers[I] > 0)
   {
     // do this math.
   }
}

и так далее.

Это, очевидно, домашнее задание, поэтому я просто помогу с кодом Java для чтения чисел, а затем предоставлю некоторый псевдокод для необходимых вычислений.

  public static void main(String[] args)
  {
    int length = 5;
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter 5 numbers: ") ;
    int[] numbers = new int[length];
    for(int i=0; i<length; i++)
    {
      numbers[i] = input.nextInt();
    }
    // calculations go here
  }

Расчеты будут выглядеть примерно так:

posSum = posCount = negSum = negCount = 0
for n in numbers
  if n > 0
    posSum = posSum + n
    posCount = posCount + 1
  else
    negSum = negSum + n
    negCount = negCount + 1

Теперь у вас есть необходимые положительные и отрицательные суммы. Общая сумма, очевидно, складывается. Учитывая posSum и posCount, вы можете вычислить среднее положительное число (проверьте случай, когда posCount равен 0). То же и для среднего негатива.

Наконец, вопрос - нужно ли вам отслеживать posCountа такжеnegCount, или вы можете рассчитать одно из другого после завершения цикла?

В выходных данных примера было указано что-то вроде: Введите пять целых чисел: -1 1 -2 2 -3 Сумма 2 положительных чисел: 3 Сумма 3 неположительных чисел: -6 Сумма 5 чисел: -3 Среднее значение 2 положительных чисел: 1,50 Среднее значение 3 неположительных чисел: -2,00 Среднее значение 5 чисел: -0,60

JVinitsky 20.09.2018 18:14

Другие вопросы по теме