Форум программистов, компьютерный форум CyberForum.ru

В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
09071994
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
27.06.2013, 14:51     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #1
помогите написать программу)))дан одномерный массив некоторых чисел найти среднее арифметическое чисел которые входят в диапазон от 5 до 10))))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 14:51     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10
Посмотрите здесь:

В одномерном массиве найти среднее арифметическое всех четных чисел!!! C++
C++ 2. В одномерном массиве найти среднее арифметическое для элементов, расположенных между максимальным и минимальным
C++ Массивы. Найти среднее арифметическое отрицательных чисел и подсчитать количество чисел, входящих в диапазон
С++. В данном массиве с n целых чисел найти среднее арифметическое n / 2 крупнейших элементов C++
В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
28.06.2013, 00:48     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #21
@grizlik78, и еще 1 вопрос: стоит ли вообще изучать STL?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
28.06.2013, 00:52     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #22
Для профессионального использования C++, думаю, однозначно стоит. Это, в общем-то, уже неотъемлемая часть языка (хотя, конечно, программы можно писать и совсем не используя STL). В общем, зависит от цели изучения.
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
28.06.2013, 00:58     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #23
@grizlik78, как бы думаю что с++ будет для меня многим (не определил конкретно, только учусь) , хотя нет еще полного понимания для чего оно все и с чем его есть) вот и появилось желание узнавать что то новое...
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
28.06.2013, 08:49     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #24
Thinker
дафай дафай щюти щюти
Цитата Сообщение от Thinker Посмотреть сообщение
шортами-шортами, могу и брюками, это не принципиально)))
давай с брюками
если учесть что в 32 разрядных int==long
и что ты будешь делать со своим упакованным числом если сумма превысит 32767 ?
или надо будет подсчитать среднеарифметическое отрицательных чисел ?
Цитата Сообщение от henecs Посмотреть сообщение
стоит ли вообще изучать STL?
изучать стоит, но без фанатизма, зазубривать не надо
прочитай пару раз общий обзор
а потом под рукой имей справочник методов STL
а потом когда напишешь несколько программ оно само запомнится

Не по теме:

Цитата Сообщение от henecs Посмотреть сообщение
как бы думаю что с++ будет для меня многим (не определил конкретно, только учусь)
Все, кого ты, не спроси
Программируют на "Си"
Нынче встретишь ты едва ли
Тех кто пишут на "Паскале"

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 10:01     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #25
Цитата Сообщение от ValeryS Посмотреть сообщение
давай с брюками
достаточно заменить long на long long и получатся "длинные шорты" ("брюки")

Цитата Сообщение от ValeryS Посмотреть сообщение
и что ты будешь делать со своим упакованным числом если сумма превысит 32767 ?
или надо будет подсчитать среднеарифметическое отрицательных чисел ?
ничего не буду делать, это просто алгоритм. в задании участвуют положительные числа, с отрицательными что-то другое (может быть) придумал бы

Цитата Сообщение от ValeryS Посмотреть сообщение
дафай дафай щюти щюти
вот уж и пошутить нельзя понятно, что мой алгоритм это просто скорее ради шутки, полезно же по-разному уметь решать задачи.
Doctor_
 Аватар для Doctor_
232 / 232 / 69
Регистрация: 03.02.2011
Сообщений: 1,405
28.06.2013, 11:30     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #26
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 <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main() {
    srand(time(NULL)); //masiv vsegda budet generirovatsia novyj
    int *vec, sum = 0, count = 0, N; //vse peremennyje
    float res = 0.0;
    cout << "Input array size: ";//zaprashevajem vvesti razmer massiva
    cin >> N;
    vec = new int[N]; //massiv s razmerom N
    for(int i=0; i<N; i++) {
            vec[i] = rand()%10; //generirujem massiv sluchajnyj chisel [0;9]
            cout << vec[i] << "  "; //vyvodim massiv na ekran
    }
    for(int i=0; i<N; i++) {
            if(vec[i] > 5 && vec[i] < 10) { //jesli chislo bolshe 5 in menjshe 10 -> chisla v diapazone(6,7,8,9)
                      sum += vec[i]; //dobavliajem v summu
                      count++; //povyshajem schetchik
            }
    }
    cout << "\nSredneej = " << (sum*1.0/count) << endl;
    getche();
}
Проверил несколько раз, считает правильно.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
28.06.2013, 11:33     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #27
Цитата Сообщение от Thinker Посмотреть сообщение
понятно, что мой алгоритм это просто скорее ради шутки, полезно же по-разному уметь решать задачи.
Ну а кто спорит?
Цитата Сообщение от Thinker Посмотреть сообщение
ничего не буду делать, это просто алгоритм.
В твоем алгоритме 2 принципиальные ошибки
первая использование арифметического сложения вместо логического
второй при создании упакованного числа ты не отсекаешь значения
Цитата Сообщение от Thinker Посмотреть сообщение
*a + (1 << 16)
если в *a будет отрицательное число будет не хорошо
-5
0хFFFFFFFB
+ 1<< 16
0х00010000
=
0х0000FFFB 65531 (ну никак не -5)и количество равно нулю

достаточно сделать так
C++
1
(*a&0xFFFF) | (1 << 16)
или так
C++
1
short(*a) | (1 << 16)
и половина проблем само отвалится

и при расчете неплохо бы приводить
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 11:39     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #28
ни одной ошибки не вижу. если *a < 0, то все равно все умножится на 0, так что не принципиально. отсекать тоже нет смысла: если перевалит за границы, то все равно результат будет неверный. сложение то чем помешало? все равно числа на разных разрядах стоят, все и так отлично.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
28.06.2013, 11:45     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #29
Цитата Сообщение от Thinker Посмотреть сообщение
ни одной ошибки не вижу.
Ну ладно продолжай
только когда нужно будет, не эту игрушку программить,а по серьезному работать с упакованными числами, не удивляйся откуда косяки полезут
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 12:03     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #30
Цитата Сообщение от ValeryS Посмотреть сообщение
Ну ладно продолжай
только когда нужно будет, не эту игрушку программить,а по серьезному работать с упакованными числами, не удивляйся откуда косяки полезут
хватит супиться. покажи реальные данные, на которых алгоритм упадет (переполнение не трогаем, это и так понятно)

программа заточена под конкретную задачу. причем тут другие случаи и вылезающие косяки, это и так понятно
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
28.06.2013, 13:01     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #31
Цитата Сообщение от Thinker Посмотреть сообщение
хватит супиться.
Да не суплюсь я
Я пытаюсь объяснить тебе порочность твоего подхода
Цитата Сообщение от Thinker Посмотреть сообщение
на которых алгоритм упадет
Цитата Сообщение от Thinker Посмотреть сообщение
программа заточена под конкретную задачу.
алгоритм упадет
но в данной задаче нет
но стоит только поменять условия( те же отрицательные числа)
и придется придумывать новый алгоритм
а не лучше сразу использовать универсальный ?

и при работе с упаковаными числами нельзя использовать арифметику, только логику
Говорю потому что сам обжигался
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 13:55     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10
Еще ссылки по теме:

В массиве вещественных чисел найти элемент, превышающий его среднее арифметическое C++
C++ В одномерном массиве найти максимум/минимум, среднее арифметическое
Найти среднее арифметическое чисел последовательности попадающих в заданный диапазон C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 13:55     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 #32
Цитата Сообщение от ValeryS Посмотреть сообщение
Да не суплюсь я
это хорошо

Цитата Сообщение от ValeryS Посмотреть сообщение
алгоритм упадет
но в данной задаче нет
но стоит только поменять условия( те же отрицательные числа)
а не лучше сразу использовать универсальный ?
согласен, но алгоритм именно для данной задачи. универсальный, хм..., подумаю попозже

Цитата Сообщение от ValeryS Посмотреть сообщение
и при работе с упаковаными числами нельзя использовать арифметику, только логику
Говорю потому что сам обжигался
ну почему же
1100 + 0011 = 1111
1100 | 0011 = 1111
если данные хранятся в разных отсеках, то сложение эквивалентно поразрядному или. в общем случае, результат будет различным.
Yandex
Объявления
28.06.2013, 13:55     В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10
Ответ Создать тему
Опции темы

Текущее время: 08:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru