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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разветвляющиеся алгоритмы http://www.cyberforum.ru/cpp-beginners/thread680612.html
Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного условия. Возможные значе-ния функции f(x):2x, x2, х/3 (в оконном приложениии выбор...
C++ Сортировка Мне нужно написать программу, которая отсортирует мою структуру по третьему символу(по чару в данном примере). Сейчас у меня подставлена в текст программы простая быстрая сортировка#include... http://www.cyberforum.ru/cpp-beginners/thread680598.html
define не C++
Здравствуйте. "Дефайню" "%f" для вывода: #define fss "%f"; . И потом делаю вывод вот такой вот: for(i=0;i<n;i++) fscanf(in,fss,&a->di);. И возникают ошибочки, типо IntelliSense: expected a ')' и...
Разработка класса "Комплексное число" C++
помогите решить задание,вот оно: Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и его основных свойств...
C++ Программа рисует три концентрические окружности и закрашивает пространство между ними (исправить ошибки) http://www.cyberforum.ru/cpp-beginners/thread680571.html
Данная программа рисует три концентрические окружности и закрашивает пространство между ними. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> ...
C++ Приведите ситуации когда использование классов лучше структур и функций Не соображу, зачем нужны классы? Когда их применение предпочтительнее использования структур и функций и почему? подробнее

Показать сообщение отдельно
isvpro
73 / 8 / 1
Регистрация: 07.10.2009
Сообщений: 51
25.10.2012, 22:31
На здоровье.
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 минуты
Надеюсь помогло, если что - спрашивайте.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru