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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Kazin94
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 61
15.10.2012, 14:16     Найти количество и сумму нечетных элементов массива #1
Народ, помогите пожалуйста начинающему
Найти количество и сумму нечетных элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 14:16     Найти количество и сумму нечетных элементов массива
Посмотрите здесь:

C++ В каждом столбце массива найти сумму и количество нечетных чисел
Найти сумму нечетных элементов массива C++
Найти сумму и количество нечетных элементов массива, расположенных до последнего положительного элемента. Ошибки в коде С++ C++
C++ Найти сумму четных отрицательных и сумму нечетных положительных элементов массива.
C++ Найти сумму нечетных положительных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
15.10.2012, 14:28     Найти количество и сумму нечетных элементов массива #2
Цитата Сообщение от Kazin94 Посмотреть сообщение
помогите пожалуйста начинающему

Не по теме:

начинающему лодырю или программисту? если второе, то сами до чего дошли в этой задаче?

John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
15.10.2012, 14:32     Найти количество и сумму нечетных элементов массива #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
27
28
29
30
31
32
33
34
35
36
/*
Найти количество и сумму нечетных элементов.
*/
 
#include <iostream>
 
const int N = 20;
 
int getRand(void) { return rand() % 10; }
 
int main(void)
{
    setlocale(0, "rus");
    int Array[N];
    for (int i = 0; i < N; ++i)
        Array[i] = getRand();
 
    std::cout << "Массив: ";
    for (int i = 0; i < N; ++i)
        std::cout << Array[i] << ' ';
    std::cout << std::endl;
 
    int Sum = 0;
    int Cnt = 0;
    for (int i = 0; i < N; ++i)
    {
        if ((i % 2) != 0)
        {
            Sum += Array[i];
            ++Cnt;
        }
    }
    std::cout << "Нечётных элементов: " << Cnt << std::endl;
    std::cout << "Их сумма: " << Sum << std::endl;
    system("pause");
}
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
15.10.2012, 14:40     Найти количество и сумму нечетных элементов массива #4
либо так
C++
1
2
3
4
5
6
7
int Sum(int *a, int n)
{
   int i, sum;
   for(i = sum = 0; i < n; sum += ((a[i] & 1) ? a[i] : 0), i++)
      ;
   return sum;
}
можно так
C++
1
2
3
4
int Sum(int *a, int *e)
{
   return a < e ? (((*a) & 1) ? *a : 0) + Sum(a + 1, e) : 0;
}
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 14:43     Найти количество и сумму нечетных элементов массива #5
Kazin94,

как вариант

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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
static int i = 0;
static int sum = 0;
 
void print(int val)
{
   if (val % 2)
   {
      sum += val;
      ++i;
   }
}
 
int main()
{
   vector<int> coll;
   
   for (int i=0; i<=9; ++i)
      coll.push_back(i);
   
   for_each(coll.begin(), coll.end(), print);
   
   cout << "Count = " << i << "\t" << "sum = " << sum << endl;
 
   return 0;
}
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
15.10.2012, 15:07     Найти количество и сумму нечетных элементов массива #6
Вариант с STL (без С++11)
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
/*
Найти количество и сумму нечетных элементов.
*/
 
#include <iostream>
#include <algorithm>
#include <numeric>
 
const int N = 20;
 
int getRand(void) { return rand() % 10; }
bool isOdd(int A) { return ((A % 2) != 0); }
struct OddAccumulator
{
    int operator()(int R, int X) { return (isOdd(X) ? R + X : 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 Cnt = std::count_if(Array, Array + N, isOdd);
    int Sum = std::accumulate(Array, Array + N, 0, OddAccumulator());
    std::cout << "Нечётных элементов: " << Cnt << std::endl;
    std::cout << "Их сумма: " << Sum << std::endl;
    system("pause");
}
Yandex
Объявления
15.10.2012, 15:07     Найти количество и сумму нечетных элементов массива
Ответ Создать тему
Опции темы

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