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

легкий массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Представление в памяти массивов и матриц http://www.cyberforum.ru/cpp-beginners/thread124893.html
Здравствуйте всем!!!Помогите пожалуйста, нужно написать код программы на следующую задачу: Цель работы – получение практических навыков в использовании указателей и динамических объектов в языке...
C++ Запись названия файлов в текстовый файл Добрый день! Помогите пожалуйста доработать прогу. Программа выводит название файлов на экран, а как сделать так, чтобы она записывала их в текстовый файл? Помогите пожалуйста) #include... http://www.cyberforum.ru/cpp-beginners/thread124882.html
Возвращение потока вывода C++
Похоже что-то делаю не так, хочу поработать с файлом, а потом вернуть поток вывода, дл того чтобы спокойно работать с терминалом. #include <stdlib.h> #include <stdio.h> #include <time.h>...
C++ Структура и файлы
Здрасте всем! написал программу про структуру TRAIN, Проблема в следующем: когда идет вывод на экран выходит ошибка! Вот сама программа: #include <stdio.h> #include <conio.h> #include...
C++ Строка слов http://www.cyberforum.ru/cpp-beginners/thread124868.html
Стоит следующая задача. Дана строка. Подсчитать сумму кодов символов каждого слова. Слова в строке разделены пробелами. Раньше со строками не работал , так что даже приблизительно не знаю что и как...
C++ Работа со стеком Доброго времени суток... Помогите, пожалуйста, разобраться со стеком. Задание следующие : "написать программу для перестановки элементов стека x(1),x(2),x(3),...x(n)=>x(2),x(3),...x(n),x(1).... подробнее

Показать сообщение отдельно
Aye Aye
369 / 283 / 36
Регистрация: 17.12.2009
Сообщений: 567
03.05.2010, 20:24
алгоритм, по простому:
сделай еще 2 переменнх max и j, в одной как бы найденный индекс в другой разность сумм до и после искомого.
потом проходим по массиву. для каждого элемента вычисляя сумму до и после и сверяем её с max, если она меньше max то запоминаем её в max и текущий индекс запоминаем в j.

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
#include <iostream>
using namespace std;
int main()
{
    srand(time(0));
    int n=5, // количество элементов
    max,     // в этой переменной хранится разность сумм
    j=0,     // индекс искомого элемента
    sumbefor=0, // сумма до текущего
    sumafter=0, // сумма после текущего
    m[n];   // сам массив
    // заполним и распечатаем массив
    for (int i=0;i<n;i++)
    {
        m[i]=rand()%10;
        cout << m[i] << ' ';
    }
    cout << '\n';
 
    // посчитаем сумму после элемента
    for (int i=0;i<n;i++) sumafter+=m[i];
 
    max=abs(sumbefor-sumafter);
    for (int i=0; i<n;i++)
    {
        if (i>0) sumbefor+=m[i-1]; // вычислим сумму до текущего элемента
        sumafter-=m[i];            // высилить мумму после текущего
        if (abs(sumbefor-sumafter) < max)
        {
            max=abs(sumbefor-sumafter);
            j=i;
        }
        // выводим на экран то что у нас в цикле произошло
        cout << "befor=" << sumbefor << " m[" << i << "]=" << m[i] << " after=" << sumafter << " diff is "
             << abs(sumbefor-sumafter) << '\n';
    }
    cout << j; //это индекс того самого элемента
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.