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

Подсчитать в одномерном массиве количество нулевых значений - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Grow1993
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 15
17.10.2012, 08:49     Подсчитать в одномерном массиве количество нулевых значений #1
Я находил в шапке форума аналогичные задачи, но они не работают....пожалуйста помогите

Дан массив
А={а1, а2...а20}

Нужно

1)Подсчитать в одномерном массиве кол-во нулевых значений
2)Кол-во нечетных элементов
3)Сумму положительных элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 08:49     Подсчитать в одномерном массиве количество нулевых значений
Посмотрите здесь:

Подсчитать количество нулевых элементов в массиве C++
В одномерном массиве целых чисел содержится два нулевых значения. Подсчитать сумму чисел, заключённых между двумя нулями. C++
Подсчет нулевых элементов в заданном одномерном массиве C++
C++ Подсчитать количество нулевых елементов
Подсчитать максимальное количество идущих подряд одинаковых элементов в одномерном массиве. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
17.10.2012, 09:42     Подсчитать в одномерном массиве количество нулевых значений #2
Grow1993,

Как эти задачи не работают?

1

C++
1
2
3
4
5
6
7
int arr[] = {-1, -4, 0, 6, 1, -9, 12, 0, -5, -8, 11, 21, -98, 67, 0, -3, -7, 15, 0, -21};
    const int size = sizeof(arr)/sizeof(arr[0]);
 
    vector<int> v_int(arr, arr+size);
 
    int countZero = count(v_int.begin(), v_int.end(), 0);
    cout << countZero << endl;
2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int odder(int *arr, int N)
{
    if (!N)
        return 0;
 
    int counter = 0;
    for (int i=0; i<N; ++i)
        if (arr[i] % 2)
            ++counter;
    return counter;
}
 
int countOdd = odder(arr, size);
    cout << countOdd << endl;
3

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int sumPos(int *arr, int N)
{
    if (!N)
        return 0;
 
    int sum = 0;
    for (int i=0; i<N; ++i)
        if (arr[i] > 0)
            sum += arr[i];
    return sum;
}
 
int Sum = sumPos(arr, size);
    cout << Sum << endl;

Дальше сам собирай
Grow1993
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 15
17.10.2012, 09:48  [ТС]     Подсчитать в одномерном массиве количество нулевых значений #3
так а можно полностью??

со всеми библиотеками пожалуйста
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
17.10.2012, 09:51     Подсчитать в одномерном массиве количество нулевых значений #4
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
40
41
42
43
44
45
46
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
int odder(int *arr, int N)
{
    if (!N)
        return 0;
 
    int counter = 0;
    for (int i=0; i<N; ++i)
        if (arr[i] % 2)
            ++counter;
    return counter;
}
 
int sumPos(int *arr, int N)
{
    if (!N)
        return 0;
 
    int sum = 0;
    for (int i=0; i<N; ++i)
        if (arr[i] > 0)
            sum += arr[i];
    return sum;
}
 
int main()
{
    int arr[] = {-1, -4, 0, 6, 1, -9, 12, 0, -5, -8, 11, 21, -98, 67, 0, -3, -7, 15, 0, -21};
    const int size = sizeof(arr)/sizeof(arr[0]);
 
    vector<int> v_int(arr, arr+size);
 
    int countZero = count(v_int.begin(), v_int.end(), 0);
    cout << countZero << endl;
 
    int countOdd = odder(arr, size);
    cout << countOdd << endl;
 
    int Sum = sumPos(arr, size);
    cout << Sum << endl;
}
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
17.10.2012, 09:57     Подсчитать в одномерном массиве количество нулевых значений #5
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
40
41
42
43
/*
Дан массив
 А={а1, а2...а20}
 
 Нужно
 
 1)Подсчитать в одномерном массиве кол-во нулевых значений
 2)Кол-во нечетных элементов
 3)Сумму положительных элементов
*/
 
#include <iostream>
#include <algorithm>
#include <numeric>
 
const int N = 20;
 
int getRand(void) { return (rand() % 10) - 5; }
bool isOdd(const int V) { return ((V % 2) != 0); }
int GreaterThanZeroAccumulate(const int R, const int V)
{
    return ((V > 0) ? R + V : R);
}
 
int main(void)
{
    setlocale(0, "rus");
 
    int Array[N];
    std::generate(Array, Array + N, getRand);
    std::cout << "Массив: ";
    std::copy(Array, Array + N, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    int ZeroCount = std::count(Array, Array + N, 0);
    int OddCount = std::count_if(Array, Array + N, isOdd);
    int Sum = std::accumulate(Array, Array + N, 0, GreaterThanZeroAccumulate);
 
    std::cout << "Кол-во нулевых значений: " << ZeroCount << std::endl;
    std::cout << "Кол-во нечетных элементов: " << OddCount << std::endl;
    std::cout << "Сумму положительных элементов: " << Sum << std::endl;
    system("pause");
}
Grow1993
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 15
17.10.2012, 10:03  [ТС]     Подсчитать в одномерном массиве количество нулевых значений #6
спасибо твоя программа помогла. А можно как то, изменить? чтоб свои писать числа, а то в КОДУ рандом идет
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
17.10.2012, 10:14     Подсчитать в одномерном массиве количество нулевых значений #7
Возьми из примера Арсенал задание массива и убери строку с std::generate:
C++
1
2
3
    int Array[] = {-1, -4, 0, 6, 1, -9, 12, 0, -5, -8, 11, 21, -98, 67, 0, -3, -7, 15, 0, -21};
    //std::generate(Array, Array + N, getRand);
    N = sizeof(Array)/sizeof(Array[0]);
Добавлено через 1 минуту
Но если преподу какому показывать собрался, то лучше возьми программу тов. Арсенала, она более "студенческая".
Grow1993
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 15
17.10.2012, 10:34  [ТС]     Подсчитать в одномерном массиве количество нулевых значений #8
Она выдает просто в столбец итог

а мне нужно как у тебя, она вообще хороша...тока говорю(щас попробую то что ты отписал) чтобы самому вводить числа
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 10:47     Подсчитать в одномерном массиве количество нулевых значений
Еще ссылки по теме:

Подсчитать произведение элементов в тех столбцах, которые не содержат нулевых значений C++
Подсчитать количество нулевых компонентов массива C++
В одномерном массиве подсчитать количество отрицательных элементов C++

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

Или воспользуйтесь поиском по форуму:
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
17.10.2012, 10:47     Подсчитать в одномерном массиве количество нулевых значений #9
Цитата Сообщение от Grow1993 Посмотреть сообщение
а мне нужно как у тебя, она вообще хороша
Ну можешь попробовать разобраться в моей. Несмотря на простоту, там есть несколько нетривиальных для начинающего моментов.
Yandex
Объявления
17.10.2012, 10:47     Подсчитать в одномерном массиве количество нулевых значений
Ответ Создать тему
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru