Проблема: напишите программу, которая считывает от пользователя пять целых чисел. Программа рассчитает и выведет
следующая статистика о пяти числах:
• 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]
}
}
кто-то из моего класса сказал использовать массивы и циклы, но я понятия не имею, как это сделать, пожалуйста, помогите




Вы можете использовать массив и цикл, как показано в приведенном ниже коде. Я использую массив 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);
@JVinitsky Я обновил ответ для расчета sum of positive and negative numbers using one for loop
Спасибо!! Это было очень полезно
@JVinitsky, если вы нашли ответ полезным, отметьте его как принятый, нажав на галочку слева от этого ответа под кнопкой «за» / «против».
Отказ от ответственности, я парень 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
Как мне найти сумму и среднее только положительных и отрицательных чисел? Я все еще немного запутался в правильном синтаксисе оператора if-else