Найти количество элементов массива, отличающихся от среднего значения не более чем на 3 - C (СИ)
Формулировка задачи:
помогите доделать
сама задача:
11. Найти количество элементов массива, отличающихся от среднего зна-
чения элементов массива не более чем на 3.
я смог написать ток до расчета среднего арифметического значения элементов массива , а дальше чет запутался ... помогите пожалуйста..
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
setlocale( LC_ALL,"Russian" );
int a[10], i, n, min, k, j, sred,sum;
printf("\n Введите количество элементов массива: ");
scanf("%d",&n);
for(i=0; i<n; i++)
{
printf("Введите а[%d]= ",i);
scanf("%d",&a[i]);
}
printf("Массив a: \n");
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
for ( i = 0; i < n; i++ )
{
sum += a[ i ];
k=sum-2;
}
sred=k/n;
printf( "\n\n целое среднее арифметическое значение элементов массива = %d\n", sred );
getch();
return 0;
}Решение задачи: «Найти количество элементов массива, отличающихся от среднего значения не более чем на 3»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h>
int main(void)
{
int *a, n, count = 0, sum = 0;
double sred;
setlocale (LC_ALL, "Russian" );
printf("Введите количество элементов массива: ");
scanf ("%d", &n);
a = (int *) malloc (n * sizeof (int));
for (int i = 0; i < n; i ++)
{
printf ("Введите а[%d] = ", i);
scanf ("%d", &a [i]);
sum += a [i];
}
sred = sum / n;
printf ("\n\nCреднее арифметическое значение элементов массива = %.3lf\n", sred);
printf ("Массив a: \n");
for(int i = 0; i < n; i ++)
{
printf("%3d", a[i]);
if (fabs (a [i] - sred) > 3)
count ++;
}
printf ("\nКоличество элементов массива, отличающихся от среднего арифметического более, чем на три: %d\n", count);
free (a);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Объявление переменных:
- a - указатель на массив
- n - количество элементов массива
- count - количество элементов, отличающихся от среднего значения более чем на 3
- sum - сумма всех элементов массива
- sred - среднее арифметическое значение элементов массива
- Установка локали на русский язык
- Ввод количества элементов массива с помощью функции scanf
- Выделение памяти под массив с помощью функции malloc
- Ввод элементов массива с помощью цикла for и функции scanf
- Вычисление суммы элементов массива с помощью цикла for и функции scanf
- Вычисление среднего арифметического значения элементов массива путем деления суммы на количество элементов
- Вывод среднего арифметического значения элементов массива с помощью функции printf
- Вывод элементов массива с помощью цикла for и функции printf
- Проверка каждого элемента массива на отличие от среднего значения более чем на 3 с помощью функции fabs и оператора if
- Увеличение значения переменной count при обнаружении элемента, отличающегося от среднего значения более чем на 3
- Вывод количества элементов, отличающихся от среднего значения более чем на 3, с помощью функции printf
- Освобождение памяти, выделенной под массив, с помощью функции free
- Возврат значения 0, сигнализирующего о завершении работы программы