Сумма (и средняя) массива с 1 элементом равна этому элементу
if (n == 1) {
return a[0];
}
в противном случае сумма - это первый элемент, добавленный к сумме остальной части массива
return a[0] + sum(a+1, n-1);
Теперь вы знаете сумму с помощью рекурсивного подхода, вы уже знали, сколько элементов было, поэтому просто разделите, чтобы получить среднее значение
avg = sum(a, n) / n;
Все вместе
#include <stdio.h>
double sum(double *arr, size_t n) {
if (n == 1) return *arr;
return *arr + sum(arr + 1, n - 1);
}
int main(void) {
double x[] = {3.14159, 2.71828182, -1, 0.0000042, 2019};
double ss = sum(x, 5);
printf("sum: %g; avg %g\n", ss, ss / 5);
}
см. код, работающий на idone