Другие языки программирования и технологии

Пожалуйста, помогите написать программу через функции в Си++

Вычислить среднеарифметическое значение положительных элементов первой половины массива. Массив задан формулой a[i]=(i-5)+(n-2)!.
//Вычислить среднеарифметическое значение положительных элементов первой
//половины массива.
//Массив задан формулой a[i]=(i-5)+(n-2)!.
int cnt;
int *pA;
int n;
int i;
int f;
double sa;

cnt = 100;//здесь можно сделать ввод размерности массива
n = 10;//здесь можно сделать ввод величины n
//вычисляем факториал для (n-2)
n -= 2;//(n-2), правильнее -= 1 тогда в цикле < а не <=
for(i = 1, f = 1; i <= n; i ++)
f *= i;

//если потом массив весь не нужен -
//cnt/=2; и соответствующие правки ниже
pA = new int[cnt];
n = cnt/2;
sa = 0;

for(i = 0; i < cnt; i++)
{
pA[i] = i - 5 + f;
if(pA[i]>0 && i <= n )
{
sa += pA[i];
}
}
sa = sa/n;

//здесь можно сделать вывод результата sa
delete []pA;
Denis Kazakovv
Denis Kazakovv
18 118
Лучший ответ
что такое n?
и какой размер массива?
:)
Валерий Ураков
Валерий Ураков
90 954
double average(double* arr, int sz)
{
if(sz==0) { cerr << "Делёж на ноль далеть не будем! "; exit(33); }
double sum=0;
for(int i=0;i<sz;i++) sum+=arr[i];
return sum/sz;
}

#define n 20

int main()
{
double a[n];
for(int i=0;i<n;i++) { a[i]=(i-5)+(n-2); } // восклицательный знак в конце условия - не факториал ли, случаем?
cout << "Среднее = " << average(a,n/2) << endl;
return 0;
}
Алексей Бомм
Алексей Бомм
11 876
I= 5+2=7
Denis Kazakovv Бред!
Какая размерность массива?
Какое значение n?
Где факториал?