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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Представление в памяти массивов и матриц http://www.cyberforum.ru/cpp-beginners/thread124893.html
Здравствуйте всем!!!Помогите пожалуйста, нужно написать код программы на следующую задачу: Цель работы – получение практических навыков в использовании указателей и динамических объектов в языке C, С++ создание модульных программ и обеспечение инкапсуляции. 1.1 Постановка задачи и варианты заданий Сформировать разреженную матрицу целых чисел в соответствии с выбранным вариантом задания и...
C++ Запись названия файлов в текстовый файл Добрый день! Помогите пожалуйста доработать прогу. Программа выводит название файлов на экран, а как сделать так, чтобы она записывала их в текстовый файл? Помогите пожалуйста) #include <stdio.h> #include <dir.h> #include <conio.h> #include <string.h> http://www.cyberforum.ru/cpp-beginners/thread124882.html
Возвращение потока вывода C++
Похоже что-то делаю не так, хочу поработать с файлом, а потом вернуть поток вывода, дл того чтобы спокойно работать с терминалом. #include <stdlib.h> #include <stdio.h> #include <time.h> #include <iostream> #include <unistd.h> using namespace std; int main(void) { FILE* result_file;
C++ Структура и файлы
Здрасте всем! написал программу про структуру TRAIN, Проблема в следующем: когда идет вывод на экран выходит ошибка! Вот сама программа: #include <stdio.h> #include <conio.h> #include <iostream.h> #include <fstream.h> #include <cstdio.h> #include <cstring.h> #pragma hdrstop #define FN "C:\\train.txt\0"
C++ Строка слов http://www.cyberforum.ru/cpp-beginners/thread124868.html
Стоит следующая задача. Дана строка. Подсчитать сумму кодов символов каждого слова. Слова в строке разделены пробелами. Раньше со строками не работал , так что даже приблизительно не знаю что и как делать. Код нужно написать на C.
C++ Работа со стеком Доброго времени суток... Помогите, пожалуйста, разобраться со стеком. Задание следующие : "написать программу для перестановки элементов стека x(1),x(2),x(3),...x(n)=>x(2),x(3),...x(n),x(1). Элементы пронумерованы в порядке их введения в стек." Нужна программа под dos, без доп. библиотек. Приведу пример программы работы со стеком. В программе вводится стек из н эллементов, и выводится на... подробнее

Показать сообщение отдельно
Aye Aye
 Аватар для Aye Aye
367 / 281 / 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;
}
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru