Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2014, 20:17   #1
Olzhakesh
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 16
По умолчанию Дано (random) 50 чисел. Вычислить среднее арифметическое чисел больших полусуммы первых двух.

Здравствуйте! Прошу помочь по заданию.
Дано 50 чисел. Вычислить среднее арифметическое чисел больших полусуммы первых двух. Надо решить через цикл "For". Можно ли это задание реализовать без массива, а просто через for?
Заранее спасибо, благодарен!
Olzhakesh вне форума Ответить с цитированием
Старый 23.12.2014, 05:28   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

А исходные 50 чисел у вас в чем хранятся?
А вообще можно:
1) Данные 50 чисел хранятся в файле (например, каждое число с новой строки).
2) Заводим три переменные: полусумма первых двух чисел, количество чисел больше полусуммы, сумма чисел больше полусуммы.
3) считываем первое число, второе число, получаем полусумму.
4) переходим в начало файла
5) в цикле идем до конца файла (если число больше полусуммы -> увеличиваем счетчик, увеличиваем значение суммы)
6) вывод сумму/количество.
BleStaR вне форума Ответить с цитированием
Старый 23.12.2014, 11:13   #3
Olzhakesh
Пользователь
 
Регистрация: 15.05.2013
Сообщений: 16
По умолчанию

Например 50 чисел через random. Как это реализовать?
Olzhakesh вне форума Ответить с цитированием
Старый 23.12.2014, 13:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Olzhakesh Посмотреть сообщение
Например 50 чисел через random. Как это реализовать?
Код:
import java.util.Random;

public class Project1 {
    public static Random rnd = new Random();

    public static void main(String[] args) {
        for (int i = 0; i < 50; i++) {
            System.out.print(rnd.nextInt(10000) + " ");
        }
    }
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.12.2014, 07:52   #5
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Ну если через рандом, тогда немного задача усложняется:
1) Помимо объявления трех переменных (как указано выше), вам понадобится еще две. Для хранения первых двух чисел из for (это нужно для того что бы первые два числа так же были учтены в конечном результате).
2) В цикле for надо будет добавить if ( i == 0) - сохраняем первое число, if ( i == 1) - сохраняем второе число и if ( i == 2) - получаем полусумму и проверяем на наеобходимость включение в конечный результат первого и второго чисел.

P.S. Данный вариант явно не самый лучший, т.к. у вас появляется 47 * 3 лишних проверок.
BleStaR вне форума Ответить с цитированием
Старый 24.12.2014, 19:45   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Вот что у меня получилось...
Код:
package ru.bugrimov;


public class Main {
    public static final int N = 50;
    public static final int COUNT_ONE = 2;

    public static void main(String[] args) {
        int number;
        double standard = 0;
        int sumOne = 0, sumTwo = 0;
        int countTwo = 0;

        for (int i = 0; i < N; i++) {
            number = (int)(Math.random()*100);
            if(i == 0 || i == 1) {
                sumOne += number;
                standard = arithmeticAverage(sumOne, COUNT_ONE);
                continue;
            }

            if(number > standard) {
                sumTwo += number;
                countTwo++;
            }
        }
        System.out.printf("Среднее: %.1f", arithmeticAverage(sumTwo, countTwo));
    }

    // Среднее арифметическое
    private static double arithmeticAverage(int sum, int quantity) {
        return ((double)sum / quantity);
    }
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить среднее арифметическое 10 заданных чисел. FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 1 18.02.2014 16:21
Дано натуральное число n. Найти среднее арифметическое чисел до первого 0 Хр@мовник Паскаль, Turbo Pascal, PascalABC.NET 3 15.01.2012 14:05
С++ Найти среднее арифметическое положительных и среднее арифметическое отрицательных чисел, минимальное по модулю число. Юрик 530 Помощь студентам 4 03.12.2011 16:26
Вводится 10 чисел. Найти среднее арифметическое положительных чисел и произведение отрицательных. Руся93 Помощь студентам 14 02.10.2011 13:12
Вычислить среднее арифметическое четырех вводимых чисел. kostik2665 Общие вопросы C/C++ 16 06.02.2011 04:48