Wersja bez tablicy (do przetestowania):
#include <iostream>
using namespace std;
int main() {
int number_count = 0;
int even_count = 0;
int a;
const char *message[4] = { "No values provided", "Mixed", "All odd", "All even" };
while(cin >> a) {
number_count++;
even_count += !(a & 1);
}
cout << "Number of values: " << number_count << "\n";
cout << "Number of even values: " << even_count << "\n";
int message_id = !number_count ? 0 : (!!even_count) + ((number_count == even_count || !even_count) << 1);
cout << message[message_id] << endl;
return 0;
}
I wersja z "tabelą":
#include <iostream>
using namespace std;
int main() {
int number_count = 0;
int even_count = 0;
int a[6];
int *aptr = a;
const char *message[4] = { "No values provided", "Mixed", "All odd", "All even" };
// input values
while((aptr != a + 6) && (cin >> *aptr++)) number_count++;
// process values
aptr = a + number_count;
while (aptr-- != a) even_count += !(*aptr & 1);
// show result
int message_id = !number_count ? 0 : (!!even_count) + ((number_count == even_count || !even_count) << 1);
cout << message[message_id] << endl;
return 0;
}