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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.80
Lollipo
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
#1

Найти сумму и количество положительных элементов массива - C++

04.10.2010, 09:40. Просмотров 11825. Ответов 6
Метки нет (Все метки)

15.Дан массив А(5). Найти сумму и количество положительных элементов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2010, 09:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму и количество положительных элементов массива (C++):

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

Найти сумму положительных элементов массива и количество этих элементов - C++
Задан массив d. Найти сумму корней положительных элементов массива и количество этих элементов .

Найти сумму положительных и количество отрицательных элементов массива - C++
В универе дали следующее задание: Дан массив Ai, i=1,2,…,15. Найти сумму положительных элементов и количество отрицательных элементов...

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

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

Найти сумму и количество положительных элементов массива В(13) стоящих на четных местах - C++
Найти сумму и количество положительных элементов массива В(13) стоящих на четных местах

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
04.10.2010, 11:29 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    int a[5],sum = 0, count = 0;
    cout << "Enter mas: \n";
    
    for(int i=0;i<5;i++)
    cin >> a[i];
    
    for(int i=0;i<5;i++)
    if(a[i]>0){sum += a[i]; count++;}
    
    cout << "Sum = " << sum << "  Kol-vo = " << count;
    
    cin.get();
    cin.get();
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
04.10.2010, 14:26 #3
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
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <functional>
#include <cstdlib>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int SIZE = 10;
    int arr[SIZE] = { -1, 1, 5, 2, -4, 0, 7, -2, 5, -9 };
    std::cout << "Array:" << std::endl;
    std::copy(arr, arr + SIZE, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    int positives = std::count_if(arr, arr + SIZE, std::bind2nd(std::greater<int>(), 0));
    std::sort(arr, arr + SIZE, std::greater<int>());
    int sum = std::accumulate(arr, arr + positives, 0);
    std::cout << "Positive elements: " << positives << std::endl;
    std::cout << "Sum of them: " << sum << std::endl;
 
    system("pause");
 
    return 0;
}
Мы простых путей не ищем!
0
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
04.10.2010, 15:00 #4
easybudda, можно ли алгоритм std::accumulate использовать с четырмя аргументами?
Так выдает ошибку.

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 <algorithm>
#include <iterator>
#include <numeric>
 
bool positive (int x)
{
    return (x>0);
}
 
int main (void)
{
    const int SIZE = 10;
    int arr[SIZE] = { -1, 1, 5, 2, -4, 0, 7, -2, 5, -9 };
 
    std::cout << "Array:" << std::endl;
    std::copy(arr, arr + SIZE, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    int positives = std::count_if(arr, arr + SIZE, positive);
    int sum = std::accumulate (arr, arr + SIZE, 0, positive); // ?
 
    std::cout << "Positive elements: " << positives << std::endl;
    std::cout << "Sum of them: " << sum << std::endl;
 
    system("pause");
    return 0;
}
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
04.10.2010, 15:32 #5
neske, функтор для accumulate должен принимать два параметра и возвращать результат операции.
1
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
04.10.2010, 15:58 #6
Цитата Сообщение от neske Посмотреть сообщение
можно ли алгоритм std::accumulate использовать с четырмя аргументами?
ага
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
#include <iostream>
#include <algorithm>
#include <numeric>
 
template <typename T>
struct PosSum {
    T operator () (const T & a, const T & b){
        return ( b > 0 ) ? a + b : a;
    }
};
 
int main(){
    const int SIZE = 5;
    int arr[SIZE] = { 1, -1, 2, -2, 0 };
 
    std::cout << "array: ";
    for ( int i = 0; i < SIZE; ++i )
        std::cout << arr[i] << ' ';
    std::cout << std::endl;
    std::cout << "Sum of positive elements: "
            << std::accumulate(arr, arr + SIZE, 0, PosSum<int>()) << std::endl;
 
    return 0;
}
1
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
04.10.2010, 16:57 #7
аа, точняк))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2010, 16:57
Привет! Вот еще темы с ответами:

Найти количество положительных элементов массива и сумму, расположенных после последнего - C++
Здравствуйте , исправьте пожалуйста, в чем тут может быть проблема, в Summ , всегда выдает -2. Задача : Дан одномерный массив. Найти...

Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу массива - C++
. Дан массив А(10). Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу

Найти сумму и количество положительных элементов, расположенных между минимальным и максимальным элементами массива. - C++
Дан массив А(30). Найти сумму и количество положительных элементов, расположенных между минимальным и максимальным элементами массива. С++

Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму элементов массива Y - C++
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных...


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

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

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