Let's focus on odd values.
'Traditional' implementation
<iostream>
using namespace std;
enum { N = 10 };
bool odd(int i);
int count_of_odd(int a[], int size);
int sum_of_odd(int a[], int size)
int main()
{
int a[N];
cout << "please enter " << N << " integers\n";
for (int n=0; n<N; ++n)
{
cin >> a[n];
if ( odd(a[n] ))
cout << a[n] << " is odd\n";
}
cout << "count of odd integers " << count_of_odd(a, N) << "\n";
cout << "sum of odd integers " << sum_of_odd(a, N) << "\n";
}
bool odd(int i) {return (i & 1) == 1;}
int count_of_odd(int a[], int size)
{
int count = 0;
for (int n = 0; n<size; ++n)
count += odd(a[n]) ? 1 : 0;
return count;
}
int sum_of_odd(int a[], int size)
{
int sum = 0;
for (int n = 0; n<size; ++n)
sum += odd(a[n]) ? a[n] : 0;
return sum;
}
'Less-traditional' implementation
#include <iostream>
#include <array>
#include <algorithm>
#include <numeric>
using namespace std;
enum { N = 10 };
int main()
{
auto odd = [] (int i) { return ((i & 1) == 1); };
auto add_odd = [odd] (int sum, int i) { return (sum + (odd(i) ? i : 0)); };
array<int, N> a;
cout << "please enter " << N << " integers\n";
for (auto & x : a)
{
cin >> x;
if ( odd(x) )
cout << x << " is odd\n";
}
cout << "count of odd integers " << count_if( a.begin(), a.end(), odd) << "\n";
cout << "sum of odd integers " << accumulate( a.begin(), a.end(), 0, add_odd ) << "\n";
}
Choose your poison...