@robcio Można prościej ;)
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main(int argc, char** argv)
{
std::vector<int> input;
std::copy_if(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(input), [](int n) { return n != 0; });
int sumEven = 0, sumOdd = 0;
std::for_each(input.cbegin(), input.cend(), [&](int i) { if (n % 2 == 0) sumEven += n; else sumOdd += n; });
std::cout << "Suma parzystych: " << sumEven << "\nSuma nieparzystych: " << sumOdd << std::endl;
}
Co nie zmienia faktu, że pytanie było o rozwiązanie w C:
#include <stdio.h>
int main()
{
int sumEven = 0;
int sumOdd = 0;
int n;
while (scanf("%d", &n) != EOF) {
if (n % 2 == 0)
sumEven += n;
else
sumOdd += n;
}
printf("Suma parzystych: %d\nSuma nieparzystych: %d\n", sumEven, sumOdd);
return 0;
}