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

Найти сумму элементов, расположенных между первым и последним нулевыми элементами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не работают функции с бинарным файлом http://www.cyberforum.ru/cpp-beginners/thread1169989.html
Здравствуйте. помогите исправить ошибки и дописать функции. В программе присутствует авторизация (файл accounts.txt). Далее программа обращается к файлу с базой (структуре). В структуре ФИО матери, количество детей, размер пособия. Не все функции работают, поэтому и прошу помощи.
C++ Семафоры и механизм событий Дорогие программисты, помогите, пожалуйста, решить три небольшие задачи по синхронизации потоков! Раньше я работала с синхронизацией потоков только на С# и эти задачи показались бы мне элементарщиной, но сейчас их надо решить на С++, а плюсы для меня - тёмный лес. Просветите, пожалуйста! 1) Реализовать с помощью семафоров и механизма событий задачу, состоящую из трёх потоков Р1, Р2 и Р3. Поток... http://www.cyberforum.ru/cpp-beginners/thread1169984.html
Переносимость программы, куча dll и кроссплатформенность C++
Решил пощупать С++ и Qt после C#. Создал простейшее консольное приложение и оконное Qt. В итоге, что бы приложение открылось вне IDE Qt пришлось скопировать в папку с программой dll для консольного приложения на 1мб+, для оконного на 350мб+. При переносе приложения на другие компьютеры вместе с этой кучей dll консольное приложение работает, а вот оконное нет, выдает Microsoft Visual C++...
C++ Ошибка: неинициализированные переменные
Требовалось оформить класс ORDER, ошибка на 103-ей строке про неинициализированные переменные, помогите исправить. #include <iostream> #include <fstream> using namespace std; int const n=21; class ORDER
C++ Вычислить сумму ряда http://www.cyberforum.ru/cpp-beginners/thread1169914.html
Задание: Нужно написать и отладить программу для вычисления суммы ряда, приняв х=3, с циклической (оператор for) и разветвляющейся структурой (оператор goto): \sum_{n=0}^{50}(n+1){x}^{2n}
C++ Метод обратной матрицы Необходимо добавить метод нахождения обратной матрицы #include <iostream> #include <fstream> using namespace std; int main() { double matrix,otvetu ; int i,j; ifstream qwerty; подробнее

Показать сообщение отдельно
John Prick
764 / 697 / 126
Регистрация: 27.07.2012
Сообщений: 1,988
Завершенные тесты: 3
08.05.2014, 13:43     Найти сумму элементов, расположенных между первым и последним нулевыми элементами
Во-первых, здесь вылетишь за пределы массива:
C++
1
2
for(i=0;i<=N;i++)
    {k=massiv[i]*k;}
Нужно сравнивать i < N, так как последний элемент имеет индекс N - 1.

Цитата Сообщение от stane4 Посмотреть сообщение
Найти сумму элементов, расположенных между первым и последним нулевыми элементами
C++
1
2
3
4
5
6
7
8
9
10
11
int i_first = 0, i_second = N -1;
while ((massiv[i_first] != 0) && (i_first < N))
    ++i_first;
while ((massiv[i_second] != 0) && (i_second > 0))
    --i_second;
int sum = 0;
if (i_first < i_second)
{
    for (i = i_first; i < i_second; ++i)
        sum += massiv[i];
}
Либо же, используюя STL:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <algorithm>
#include <iterator>
#include <numeric>
 
int * first = std::find(massiv, massiv + N, 0);
int * second = std::find(std::reverse_iterator<int*>(massiv + N),
                                 std::reverse_iterator<int*>(massiv), 0).base();
--second;
sum = 0;
if (first < second)
    int sum = std::accumulate(first, second, 0);
 
Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru