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

Найти элемент массива, наиболее близкий к среднему значению всех элементов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Lerunchik
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 3
25.10.2012, 21:19     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #1
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива.
Найти среднее арифметические положительных и отрицательных элементов массива.
И все это в динамическом массиве(

Пожалка помогите))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2012, 21:19     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива
Посмотрите здесь:

C++ Найти элемент массива наиболее близкий к заданному числу.
C++ Найти наиболее близкий элемент к целому
C++ Найти в массиве элемент, наиболее близкий к среднему рифметическому суммы его элементов
Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов. C++
Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
isvpro
72 / 7 / 1
Регистрация: 07.10.2009
Сообщений: 51
25.10.2012, 22:31     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #2
На здоровье.
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
52
//midlesearch.cpp
#include <iostream>
#include <cmath>
 
int main()
 
{
    //определим длину массива
    
    const int iLen = 10;
 
    // объявим массив и выделим для него место в динамической памяти
    int* pArr = new int[iLen];
    // создадим переменную, в которой посчитаем сумму всех элементов,
    // потом через нее выведем среднее и будем искать отклонение от среднего
    int iSum=0;
 
    // собственно инициализируем массив - можно конечно вводить все значения,
    // но мне так было проще. Если не понятно как это сделать - дайте знать, 
    // я напишу.
    for (int i=0; i < iLen; i++)
        pArr[i] = pow(-1,i+1)*(i+1)*10;
 
    // посчитаем сумму всех элементов - специально в отдельный цикл вывел - 
    // вдруг предыдущий будет заменен на ициализацию массива другим способом
    for(int i=0; i<iLen;i++)
        iSum += abs(pArr[i]);
    
    // определим доп. переменные для поиска индекса элемента с минимальным  отклонением
    int iDelta=0;
    int index;
 
    //найдем минимальное отклонение и его индекс - побежим по всем элементам массива 
    // начиная со второго
    for(int i=1; i<iLen; i++)
        
        // если отклонение текущего элемента от среднего меньше отклонения от 
        // среднего предыдущего элемента
        if(abs(iSum/iLen - abs(pArr[i])) < abs(iSum/iLen - abs(pArr[i-1])) )
            //тогда сохрани новый индекс
            iDelta = i;
    // 
    std::cout << "delta = " << pArr[iDelta] << std::endl;
 
    
    //освобождаем память
    // для переменных iLen, iSum, iDelta, index нет смысла помещать в 
    // кучу (динамическую память) поскольку их не много - памяти точно хватит
    // и к тому же они сами помрут при выходе из функции - поскольку они находятся
    // в автоматической памяти.
    delete pArr;
}
Добавлено через 3 минуты
Надеюсь помогло, если что - спрашивайте.
Байт
 Аватар для Байт
13975 / 8806 / 1228
Регистрация: 24.12.2010
Сообщений: 15,955
25.10.2012, 23:25     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #3
Вот близкая тема
Вычислить номер элемента, значение которого близкое к среднему арифметическому всех элементов массива
Lerunchik
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 3
25.10.2012, 23:35  [ТС]     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #4
isvpro, а на си можно????
isvpro
72 / 7 / 1
Регистрация: 07.10.2009
Сообщений: 51
25.10.2012, 23:42     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #5
честно говоря, у меня нет сишного компилятора, чтобы проверить, да и не настолько я в нем силен.
Но, могу сказать, что std::cout придется заменить на printf (определение можете в википедии найти).
#include <cmath> меняется на #include <cmath.h>.
Если вдруг abs() не опознается (вдруг там ее нету) - тогда можно определись самим следующим образом:

int abs(int a)
{
return (a >=0) ? a : -a;
}
В остальном вроде должно работать =)
Lerunchik
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 3
26.10.2012, 00:05  [ТС]     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #6
спасибо)) буду пробовать)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 00:10     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива
Еще ссылки по теме:

Найти и вывести элемент,наиболее близкий к среднему арифметическому всех элементов массива C++
C++ Найти в файле, число равное среднему арифметическому всех элементов массива
C++ Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех элементов

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

Или воспользуйтесь поиском по форуму:
isvpro
72 / 7 / 1
Регистрация: 07.10.2009
Сообщений: 51
26.10.2012, 00:10     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива #7
Должно получиться рано или поздно
Yandex
Объявления
26.10.2012, 00:10     Найти элемент массива, наиболее близкий к среднему значению всех элементов массива
Ответ Создать тему
Опции темы

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