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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разветвляющиеся алгоритмы http://www.cyberforum.ru/cpp-beginners/thread680612.html
Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного условия. Возможные значе-ния функции f(x):2x, x2, х/3 (в оконном приложениии выбор выполнить с помощью компоненты RadioGroup). Предусмотреть вывод сообщений, показывающих, при каком условии и с какой функцией производились вычисления у.
C++ Сортировка Мне нужно написать программу, которая отсортирует мою структуру по третьему символу(по чару в данном примере). Сейчас у меня подставлена в текст программы простая быстрая сортировка#include <iostream> #include <conio.h> #include <string.h> #include <stdlib.h> using namespace std; int compare(const void *arg1, const void *arg2) { return strcmp((char *)arg1, (char *)arg2); } 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 ')' и вторая IntelliSense: expected an expression . Кидал другу, у него не возникает никаких ошибок. У меня же их 2. В чем дело не знаю. Может вы сможете разобраться в чем дело. P.S. у меня 10 вс, у друга...
Разработка класса "Комплексное число" C++
помогите решить задание,вот оно: Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Привести программу (int main), использующий объекты разработанного класса: Объект «комплексные числа». Операции определяются по общепринятым формулам. Конструктор должен позволить создавать...
C++ Программа рисует три концентрические окружности и закрашивает пространство между ними (исправить ошибки) http://www.cyberforum.ru/cpp-beginners/thread680571.html
Данная программа рисует три концентрические окружности и закрашивает пространство между ними. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> void main() { int gdriver = DETECT, gmode, errorcode;
C++ Приведите ситуации когда использование классов лучше структур и функций Не соображу, зачем нужны классы? Когда их применение предпочтительнее использования структур и функций и почему? подробнее

Показать сообщение отдельно
isvpro
72 / 7 / 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 минуты
Надеюсь помогло, если что - спрашивайте.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru