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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Malaua
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 23
#1

Найти сумму элементов массива - C++

03.12.2012, 12:33. Просмотров 538. Ответов 5
Метки нет (Все метки)

Найти сумму элементов массива, расположенных между первым и последним положительными элементами.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 12:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму элементов массива (C++):

Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива - C++
Вот, что есть.Помогите довести до ума! #include <cstdlib> #include <iostream> #include <math.h> using namespace std; void...

Найти сумму элементов массива до первого элемента равного 0, и сумму оставшихся элементов (функции) - C++
Дан массив а1, а2, …, а12. Вычислить сумму элементов этого массива до первого элемента, равного 0, и сумму оставшихся элементов.

Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...) - C++
Помогите пожалуйста разработать программу и реализовать интуитивный понятный интерфейс (используя формы).При написании программы можно...

Функции в с++. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. - C++
Запутался уже -_- Куда че пихать не могу понять... Дан произвольный массив D размера k. Найти сумму элементов массива D, а также суммы...

Найти сумму элементов массива, равных среднему арифметическому всех элементов массива - C++
здравствуйте я студентка первого курса и мы изучаем С и С++ работам в борланде моя задача,над которой я бьюсь, на одномерный массив ...

Найти количество положительных элементов массива; найти сумму элементов, расположенных после заданного - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) Количество положительных элементов массива; 2) Сумму элементов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
03.12.2012, 12:47 #2
Что не получается?
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
03.12.2012, 13:31 #3
C++
1
std::cout<<std::accumulate(std::find_if(a, a+10, std::bind2nd(std::greater<int>(), 0))+1, std::find_if(std::reverse_iterator<int*>(a+10), std::reverse_iterator<int*>(a), std::bind2nd(std::greater<int>(), 0)).base()-1, 0);
3
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.12.2012, 13:51 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
+ вот еще и мой вариант(немного попроще написал):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <array>
 
int main()
{
    std::array<int, 10> ar = {-8,-6,3,-7,1,6,-2,7,3,-1};
 
    //итератор первого элемента большего 0
    auto first = std::find_if(ar.cbegin(), ar.cend(), [](const int x){return x>0;});
    //итератор последнего элемента больше 0
    auto second = std::find_if(ar.crbegin(), ar.crend(), [](const int x){return x>0;});
    //позиция последнего элемента больше 0
    auto posOfSecond = std::distance(second, ar.crend());
    //аккумулируем сумму элементов
    std::cout<<"Sum = "<<std::accumulate(first, ar.cbegin()+posOfSecond, 0)<<std::endl;;
    system("pause");
    return 0;
}
1
Malaua
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 23
03.12.2012, 16:07  [ТС] #5
C++ (Qt)
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
# include <iostream>
using namespace std;
int main()
{
    setlocale(0,"RUS");
    int i,j,n; // n - количество элементов в массиве
    int numFirst,summ=0;
int a[100]; // a - массив целых чисел, максимальный размер 100 элементов
cout<<"Введите размерность массива:"<<endl;
cin >> n;
cout<<"Введите значения элементов массива:"<<endl;
for (int i = 0; i < n; i++)  // ввод массива
  cin >> a[i];
int m = a[0];
 
 
for (int i = 0; i < n; i++)
{
      if(a[i]>0)
  {
      numFirst=i;
  }
}
for(i = n; i>=0; --i)
    {
        if(a[i]>0)
        {
            if (i==numFirst) // позиция совпала с уже имеющимся значит
            { //  положительный элемент один
               cout<<"Сумма положительных элементов равна:0"<<endl; 
            }
            else  // иначе
            { // считаем количество
                for(j = numFirst+1; j < i; j++)
                    summ=a[j];
                cout<<"Сумма положительных элементов равна:"<<summ<<endl;
            }
        
        }
}
            system("pause");
            return 0;
}
Посмотрите в чем ошибка. Программа не подсчитывает сумму, а все время выдает 0.
0
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
03.12.2012, 16:32 #6
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main () {
    srand(time(NULL));
    const int size = 20;
    int array[size], sum = 0, frsInd, scnInd;
    
    std::cout << "Array: " << std::endl;
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++)
            if (array[j] > 0) {
                     frsInd = j;
                     break;
            }
        std::cout << (array[i] = rand() % 25 - 5) << " ";
        scnInd = (array[i] > 0) ? i: scnInd;
    }
    std::cout << std::endl;
    
    for (int i = frsInd; i < scnInd + 1; i++) 
        sum += array[i];
    std::cout << "Summa[" << frsInd + 1 << ", " << scnInd + 1 << "]: " << sum << std::endl;
    
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 16:32
Привет! Вот еще темы с ответами:

Найти сумму n первых элементов массива и произвидения m посдедних элементов массива - C++
не могу врубиться как написать эту прогу С клавиатуры вводится массив Т найти сумму n первых элементов массива и произвидения m...

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива. - C++
Помогите написать код на с++ Программа должна иметь пользовательское меню, которое позволяет: Заполнить массив и при этом вывести его...

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива. - C++
Составьте программу на языке С++ для решения одного из вариантов заданий. Программа должна иметь пользовательское меню, которое позволяет:...

Найти сумму элементов главной диагонали и от каждого элемента массива отнять эту сумму - C++
Всем доброго времени суток. Прошу помочь новичку решить двумерный массив. Для Borland C++ 3.1 Дан двумерный массив размером m на n. Найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2012, 16:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru