C/C++

Обработка одномерных массивов в функциях

Вычислить количество элементов, превышающих среднее
арифметическое всех элементов. размер массива 9
int get_count(double[] arr) {
// Длина массива
int len = 9;
// сумма элементов
double sum = 0;
for (int i =0; i<len; i++) {
sum += arr[i];
}
// среднее ариф.
double m = sum / 9;

//ко-во элементов превышающих ср. ариф.
int count = 0;
for (int i = 0; i m) count++;
}
return count;
}
Евгений Поливенко
Евгений Поливенко
9 233
Лучший ответ
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>

double Srednee(int * Mas, const int size)
{
double rt = 0.0;

for(int x = 0; x < size; x++)
{
rt += Mas[x];
}
rt /= size;

printf("Среднее арифметическое = %lf.\n", rt);

return rt;
}

int CountEl(int * Mas, const int size)
{
int count = 0;

double s = Srednee(Mas, size);
for(int y = 0; y < size; y++)
{
if((double) Mas[y] > s) count++;
}

return count;
}

int main()
{
srand(time(NULL));
const int size = 9;
int Mas[size];
for(int z = 0; z < size; z++)
{
Mas[z] = rand() % 23 * pow(-1.0, rand() % 3);
printf("%d ", Mas[z]);
}
putchar('\n');

int count = CountEl(Mas, size);
printf ("Количество элементов в массиве, превышающих средее арифметическое = %d.\n", count);

return 0;
}
Aziz Valiyev
Aziz Valiyev
61 701
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<unistd.h>
#define count 9
//функция вычисления количества
//элементов, больших, чем
//среднее арифметическое массива:
int MoreAverage(int *array,int Count, int average)
{
int quantity=0;
for(int i = 0; i < Count; i++)
if(array[i]>average) quantity++;
return quantity;
}

int main()
{
int array[count];
double average=0;
//заполняем массив
//случайными значениями:
srand(time(NULL));
printf("Array[%d]:",count);
for(int i = 0; i < count; i++)
{
array[i] = rand()%10;
printf("%2d ",array[i]);
average+=array[i];
}
//вычисляем среднее арифметическое:
average/=count;
printf("\n\nAverage = %.2lf",average);
printf("\n\nQuantity of elements that are\ngreater than average is ");
printf("%d\n\n",MoreAverage(&array,count,average));

fflush(stdout);//сброс буфера
sleep(10);//пауза
return 0;
}
Валера Шмытков Здраствуйте, прошу прошение, вы не могли бы добавить в функцю

//вычисляем среднее арифметическое:
average/=count;
printf("\n\nAverage = %.2lf",average);
printf("\n\nQuantity of elements that are\ngreater than average is ");
printf("%d\n\n",MoreAverage(&array,count,average));
size_t func(const std::vector < T > &v) {
double avg = accumulate(begin(v), end(v), 0.0) / v.size();
return count_if(begin(v), end(v), [avg](T i){return i > avg ;});
}