В этой задаче вы должны написать функцию void count_odd_even(int n, int *odd, int *even).
Данная функция должна сохранять в переменную, которая лежит по указателю odd количество нечётных цифр числа, а в переменную, которая лежит по указателю even, — количество чётных цифр.
На вход вашей программе будут даваться 10 чисел. Для каждого из них вы должны вывести два числа — количество нечётных цифр и количество чётных цифр.
Весь ввод и вывод должен быть организован в функции main, которая для подсчёта будет вызывать функцию count_odd_even.
Формат входных данных
На вход программе даётся 10 натуальных чисел, каждое из которых не превышает 109.
Формат выходных данных
Ваша программа должна вывести 10 пар чисел — количетство четных и нечётных цифр в каждом числе.
Answers & Comments
Verified answer
/*Замечание: По условию, с одной стороны, |n| ≤10⁹, с другой стороны, тип n - int, то есть число 10⁹ в переменную n не поместится.*/
#include <iostream>
#include <math.h>
using namespace std;
int odd = 0, even = 0;
void count_odd_even(int n, int *odd, int *even);
int main() {
int a[10];
for (int i = 0; i < 10; i++)
cin >> a[i];
for (int i = 0; i < 10; i++) {
count_odd_even(a[i], &odd, &even);
cout << "(" << odd << "; " << even << ")" << endl;
odd = 0;
even = 0;
}
return 0;
}
void count_odd_even(int n, int *odd, int *even) {
int t;
t = abs(n);
do {
if (t % 2 == 1)
(*odd)++;
else (*even)++;
t /= 10;
} while (t != 0);
}