Tail-рекурсивная функция для подсчета всех чисел, превышающих среднее значение в массиве
Мне нужно сделать функцию, которая вычисляет среднее значение и возвращает количество значений, превышающих среднее. Например, передача массива {4, 5, 12, 17} должна возвращать 2 (потому что 12 и 17 больше среднего значения 9,5). До сих пор я писал функцию для возврата среднего значения, но как я могу заставить ее считать числа больше среднего и держать ее хвост-рекурсивной?
Ниже приведена средняя функция.
Что я уже пробовал:
int TAvg(int* a, int size, int acc=0, int num=0){ //acc is the sum so far, num is the number of all elements if (size == 0){ return (acc / num); } return TAvg(a, size - 1, acc+a[size-1], num+1);}
Nelek
Должны ли вы делать все это в одной и той же функции?