Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
09071994
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
#1

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

27.06.2013, 14:51. Просмотров 1850. Ответов 31
Метки нет (Все метки)

помогите написать программу)))дан одномерный массив некоторых чисел найти среднее арифметическое чисел которые входят в диапазон от 5 до 10))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 14:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В одномерном массиве найти среднее арифметическое чисел, которые входят в диапазон от 5 до 10 (C++):

В одномерном массиве найти среднее арифметическое всех четных чисел!!! - C++
в одномерном массиве надо найти среднее арифметическое всех четных чисел!!!

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

В одномерном массиве найти максимум/минимум, среднее арифметическое - C++
Вообще ничего не понимаю, помогите пожалуйста:( Числовой массив B целочисленный, содержит k элементов. Элементы массива вводится с...

Массивы. Найти среднее арифметическое отрицательных чисел и подсчитать количество чисел, входящих в диапазон - C++
Всем привет! Начал изучать C++, сталкнулся вот с такой задачей Произвести следующую обработку 15 вещественных чисел: найти среднее...

Найти среднее арифметическое чисел последовательности попадающих в заданный диапазон - C++
1. С клавиатуры вводится последовательность чисел. Количество чисел заранее не известно, но может быть очень большим. Числа...

Найти среднее арифметическое простых чисел в массиве - C++
ПОМОГИТЕ ПЛИИИЗ РЕШИТЬ ЗАДАЧУ!!!!!!!!УСЛОВИЕ - Задан упорядоченный по убыванию целочисленный массив Х, вставить в массив Х некоторое...

31
09071994
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
27.06.2013, 19:41  [ТС] #16
я написала)))))))))))))))))))))))
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
#include <iostream.h>
#include <stdlib.h>
#include<math.h>
int main()
{
    const int n=5;
    randomize();
    int a[n],i,s=0,m=0;
    for(i=0;i<n;i++)
    {
      a[i]=rand()%10;
      cout<<a[i]<<'\t';
    }
 
    for (i=0;i<n;i++)
    {
    if ((a[i]>5) && (a[i]<10))
    {
    s+=a[i];
    m+=1;
    }
    }
 
    if(m==0)
    {
    cout<<endl<<"net chisel is [5..10]"<<endl;
    }
    else
    {
    cout<<endl<<"sred arif="<<s/m<<endl;
    }
    return 0;
}
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.06.2013, 20:07 #17
Цитата Сообщение от 09071994 Посмотреть сообщение
я написала)))))))))))))))))))))))
исправьте целочисленную арифметику на действительную, тогда да (почти)
0
grizlik78
Эксперт С++
1966 / 1459 / 120
Регистрация: 29.05.2011
Сообщений: 3,018
27.06.2013, 20:43 #18
Продвигаем новый стандарт в массы
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
#include <iostream>
//#include <vector>
#include <algorithm>
#include <numeric>
#include <random>
 
int main()
{
    std::default_random_engine gen;
    std::uniform_int_distribution<int> distribution(0, 25);
 
    int array[20]; //std::vector<int> array(20);
    for (auto &v : array)
        std::cout << (v = distribution(gen)) << " ";
    std::cout << std::endl;
    auto first = std::begin(array), last = std::end(array);
 
    std::cout << "mean = ";
 
    last = std::remove_if(first, last,
            [](int v) { return v < 5 || 10 < v; });
    if (last != first)
        std::cout << std::accumulate(first, last, 0.0) / std::distance(first, last) << std::endl;
    else
        std::cout << "0" << std::endl;
}
0
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
28.06.2013, 00:43 #19
@grizlik78, это возможности STL ?
для меня это "ГУРУ-код")

Добавлено через 18 минут
если это STL то посоветуйте какой то хороший учебник, если не трудно
и еще 1 вопрос: стоит ли вообще изучать STL?
0
grizlik78
Эксперт С++
1966 / 1459 / 120
Регистрация: 29.05.2011
Сообщений: 3,018
28.06.2013, 00:47 #20
Цитата Сообщение от henecs Посмотреть сообщение
@grizlik78, это возможности STL ?
Ну, в общем, да. STL и стандарт C++11.

Добавлено через 2 минуты
Цитата Сообщение от henecs Посмотреть сообщение
если это STL то посоветуйте какой то хороший учебник, если не трудно
Н. Джосьютис. Стандартная библиотека C++.
Оно, конечно, по стандарту C++03, но основа актуальна и до сих пор.
Не знаю, не было ли нового издания.

Добавлено через 1 минуту
Джосьютис, конечно, не учебник. Это, скорее, справочник. Но учиться по нему тоже можно. Подробно и с примерами.
1
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
28.06.2013, 00:48 #21
@grizlik78, и еще 1 вопрос: стоит ли вообще изучать STL?
0
grizlik78
Эксперт С++
1966 / 1459 / 120
Регистрация: 29.05.2011
Сообщений: 3,018
28.06.2013, 00:52 #22
Для профессионального использования C++, думаю, однозначно стоит. Это, в общем-то, уже неотъемлемая часть языка (хотя, конечно, программы можно писать и совсем не используя STL). В общем, зависит от цели изучения.
1
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
28.06.2013, 00:58 #23
@grizlik78, как бы думаю что с++ будет для меня многим (не определил конкретно, только учусь) , хотя нет еще полного понимания для чего оно все и с чем его есть) вот и появилось желание узнавать что то новое...
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,190
28.06.2013, 08:49 #24
Thinker
дафай дафай щюти щюти
Цитата Сообщение от Thinker Посмотреть сообщение
шортами-шортами, могу и брюками, это не принципиально)))
давай с брюками
если учесть что в 32 разрядных int==long
и что ты будешь делать со своим упакованным числом если сумма превысит 32767 ?
или надо будет подсчитать среднеарифметическое отрицательных чисел ?
Цитата Сообщение от henecs Посмотреть сообщение
стоит ли вообще изучать STL?
изучать стоит, но без фанатизма, зазубривать не надо
прочитай пару раз общий обзор
а потом под рукой имей справочник методов STL
а потом когда напишешь несколько программ оно само запомнится

Не по теме:

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

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

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

Цитата Сообщение от ValeryS Посмотреть сообщение
дафай дафай щюти щюти
вот уж и пошутить нельзя понятно, что мой алгоритм это просто скорее ради шутки, полезно же по-разному уметь решать задачи.
0
Doctor_
234 / 234 / 71
Регистрация: 03.02.2011
Сообщений: 1,431
28.06.2013, 11:30 #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();
}
Проверил несколько раз, считает правильно.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,190
28.06.2013, 11:33 #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)
и половина проблем само отвалится

и при расчете неплохо бы приводить
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 11:39 #28
ни одной ошибки не вижу. если *a < 0, то все равно все умножится на 0, так что не принципиально. отсекать тоже нет смысла: если перевалит за границы, то все равно результат будет неверный. сложение то чем помешало? все равно числа на разных разрядах стоят, все и так отлично.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,190
28.06.2013, 11:45 #29
Цитата Сообщение от Thinker Посмотреть сообщение
ни одной ошибки не вижу.
Ну ладно продолжай
только когда нужно будет, не эту игрушку программить,а по серьезному работать с упакованными числами, не удивляйся откуда косяки полезут
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.06.2013, 12:03 #30
Цитата Сообщение от ValeryS Посмотреть сообщение
Ну ладно продолжай
только когда нужно будет, не эту игрушку программить,а по серьезному работать с упакованными числами, не удивляйся откуда косяки полезут
хватит супиться. покажи реальные данные, на которых алгоритм упадет (переполнение не трогаем, это и так понятно)

программа заточена под конкретную задачу. причем тут другие случаи и вылезающие косяки, это и так понятно
0
28.06.2013, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 12:03
Привет! Вот еще темы с ответами:

Найти среднее арифметическое простых чисел в массиве - C++
помогите решить задачку---Задан упорядоченный по убыванию целочисленный массив Х, вставить в массив Х некоторое число Н, сохранив...

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

С++. В данном массиве с n целых чисел найти среднее арифметическое n / 2 крупнейших элементов - C++
Помогите ,очень нужно В данном массиве с n целых чисел найти среднее арифметическое n / 2 крупнейших элементов.

В одномерном числовом массиве посчитать среднее арифметическое отрицательных элементов - C++
В одномерном числовом массиве посчитать среднее арифметическое отрицательных элементов. Заранее спасибо :)


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru