Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 66

Даны вещественные числа b1,b2,..b9. Определить среднее арифметическое тех из них которые больше 10

18.12.2011, 17:49. Показов 4177. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны вещественные числа b1,b2,..b9. Определить среднее арифметическое тех из них которые больше 10
Кто представляет как это сделать, напишите свой вариант. Буду очень благодарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2011, 17:49
Ответы с готовыми решениями:

Определить среднее арифметическое тех чисел заданной последовательности, которые больше некоторого числа n
Даны натуральное число 'x' и целые числа 'a1,a2, ..., ax'. Определить среднее арифметическое тех чисел ai, которые больше некоторого числа...

Даны четыре целых числа. Найти сумму тех из них, которые кратны трем и больше пяти
Даны четыре целых числа. Найти сумму тех из них, которые кратны трем и больше пяти. Оператор цикла не использовать. Добавлено через 3...

Даны четыре целых числа. найти сумму тех из них, которые кратны трем и больше пяти. Оператор цикла не использовать
Даны четыре целых числа. найти сумму тех из них, которые кратны трем и больше пяти. Оператор цикла не использовать !

10
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.12.2011, 18:14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iterator>
#include <iostream>
#include <vector>
#include <algorithm>
 
template <class T> T gen() { return (rand() % 21); }
 
template <class T> T acc(T init, T num) { return ((num > 10) ? (num + init) : (init)); }
 
template <class T> bool cnt(T num) { return (num > 10); }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(10);
    std::generate(v.begin(), v.end(), gen<int>);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::cout << static_cast<float>(std::accumulate(v.begin(), v.end(), 0, acc<int>)) / std::count_if(v.begin(), v.end(), cnt<int>) << std::endl;
    return 0;
}
1
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 66
18.12.2011, 18:22  [ТС]
Очень благодарен, но боюсь моего уровня знаний не хватает чтобы понять ваш вариант решения..
Если бы как то по проще..
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.12.2011, 18:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iterator>
#include <iostream>
#include <vector>
#include <algorithm>
 
//Возвращает псевдослучайное число в диапазоне [0; 20]
template <class T> T gen() { return (rand() % 21); }
 
//Если num > 10 возвращает num + init, иначе - init. Нужна для подсчета суммы элементов
template <class T> T acc(T init, T num) { return ((num > 10) ? (num + init) : (init)); }
 
//Если num > 10 возвращает true, иначе - false. Нужна для подсчета количества элементов
template <class T> bool cnt(T num) { return (num > 10); }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(10);//Вектор на 10 элементов
    //Генерируем вектор при помощи функции gen
    std::generate(v.begin(), v.end(), gen<int>);
    //Выводим весь вектор на экран
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    //Выводим сууму элементов вектора(больших 10), деленную на количество элементов больших десяти.
    std::cout << static_cast<float>(std::accumulate(v.begin(), v.end(), 0, acc<int>)) / std::count_if(v.begin(), v.end(), cnt<int>) << std::endl;
    return 0;
}
generate
count_if
accumulate
1
18.12.2011, 18:31

Не по теме:

Цитата Сообщение от Wampall Посмотреть сообщение
Задача по програмированию
КО отдыхает, это ж додуматься так назвать тему на форуме программистов

0
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 66
18.12.2011, 18:37  [ТС]
Спасибо, это то что нужно=)

Добавлено через 5 минут
Вы правы, ошибся, больше не повторится
Jupiter,
0
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
18.12.2011, 18:50
2 soon
Не люблю придираться и поправлять других, но все же в задании указано, что числа вещественные и всего 9 чисел, а у Вас вектор на 10 элементов и типа int.
Да и к Вашему варианту мне еще и #include <numeric> потребовался. ( Ubuntu, g++ )

Цитата Сообщение от Wampall Посмотреть сообщение
Если бы как то по проще..
Вот "как-то попроще":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
#define dimm_arr 9 // размер исходного массива
// заполнение исходного массива псевдослучайными целочисленными значениями
void fill_array( double[], const size_t );
// вывод массива на экран
void print_array( double[], const size_t );
// считаем среднее арифметическое тех элементов, которые больше 10
double calc_avg_more_10( double[], const size_t );
 
int main() {
    srand( time( NULL ) );
    double arr[ dimm_arr ];
 
    fill_array( arr, dimm_arr );
    cout << "Массив: " << endl;
    print_array( arr, dimm_arr );
 
    cout << "Среднее арифметическое элементов массива больших 10 равно "
            << calc_avg_more_10( arr, dimm_arr ) << endl;
 
    return 0;
}
 
void fill_array( double array[], const size_t dimm ) {
    for ( size_t i = 0; i < dimm; ++i )
        array[ i ] = rand() % 201 / 10.0; // [ 0..20 ]
 
}
 
void print_array( double array[], const size_t dimm ) {
    for ( size_t i = 0; i < dimm; ++i )
        cout << array[ i ] << " ";
 
    cout << endl;
}
 
double calc_avg_more_10( double array[], const size_t dimm ) {
    double sum = 0;
    size_t count = 0;
    for ( size_t i = 0; i < dimm; ++i )
        if ( array[ i ] > 10 ) {
            sum += array[ i ];
            ++count;
        }
    return sum / count;
}
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.12.2011, 18:56
Цитата Сообщение от Roof Посмотреть сообщение
Не люблю придираться и поправлять других, но все же в задании указано, что числа вещественные и всего 9 чисел, а у Вас вектор на 10 элементов и типа int.
Да и к Вашему варианту мне еще и #include <numeric> потребовался. ( Ubuntu, g++ )
Заготовка была с int, решил оставить как есть, буквально несколько строчек поменять - не проблема. Насчет 9 элементов - привычка, вижу b9, предполагаю, что там 10 элементов, т.к. отсчет с нуля. numeric - да, надо бы, accumulate оттуда. Но на g++ без проблем собралось.
0
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 66
18.12.2011, 19:15  [ТС]
Roof, Потрясающе. Только можете подсказать как сделать, чтобы окно выполнения не проскакивало. Я поставил system ("pause"); перед return sum / count;
Получилось что при выполнении показывает массив:
А среднее арифметическое вылетает сразу.

Добавлено через 11 минут
справился.
Цитата Сообщение от Wampall Посмотреть сообщение
Roof, Потрясающе. Только можете подсказать как сделать, чтобы окно выполнения не проскакивало. Я поставил system ("pause"); перед return sum / count;
Получилось что при выполнении показывает массив:
А среднее арифметическое вылетает сразу.
Справился.
0
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
18.12.2011, 19:16
Честно говоря у меня никуда ничего не проскакивает.
На Windows'е программированием на языке C++ никогда не занимался, потому могу только предположить такой вариант:
C++
1
2
3
...
system ("pause");
return 0;
0
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 66
18.12.2011, 19:26  [ТС]
Roof, так и сделал=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2011, 19:26
Помогаю со студенческими работами здесь

Найти среднее арифметическое тех элементов массива, которые по своему значению больше первого элемента
Задача: Дан целочисленный массив из N элементов (N≤1000). Элементы массива могут принимать значения от -10000 до 10000. Разработайте...

Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7
Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7. Буду благодарен за решение. Кто чем поможет)

Определить среднее арифметическое тех элементов массива, которые при делении на 4 дают остаток 1 или 3
ввести одномерный массив А из 13 элементов. определить в нем среднее арифметическое тех элементов, которые при желании на 4 дают остаток 1...

даны вещественные числа b1,b2,...,b9.определить среднее арифметическое тех из них,которые больше 10.
даны вещественные числа b1,b2,...,b9.определить среднее арифметическое тех из них,которые больше 10.(и если можно,помогите с блок-схемой...)

Даны числа от 1 до n Найти среднее арифметическое только тех чисел Которые больше числа x вводимого с клавиатуры
Здравствуйте, нужна ваша помощь! Даны числа от 1 до n Найти среднее арифметическое только тех чисел Которые больше числа x вводимого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru