Найти количество элементов массива, отличающихся от среднего значения не более чем на 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек
  2. Объявление переменных:
    • a - указатель на массив
    • n - количество элементов массива
    • count - количество элементов, отличающихся от среднего значения более чем на 3
    • sum - сумма всех элементов массива
    • sred - среднее арифметическое значение элементов массива
  3. Установка локали на русский язык
  4. Ввод количества элементов массива с помощью функции scanf
  5. Выделение памяти под массив с помощью функции malloc
  6. Ввод элементов массива с помощью цикла for и функции scanf
  7. Вычисление суммы элементов массива с помощью цикла for и функции scanf
  8. Вычисление среднего арифметического значения элементов массива путем деления суммы на количество элементов
  9. Вывод среднего арифметического значения элементов массива с помощью функции printf
  10. Вывод элементов массива с помощью цикла for и функции printf
  11. Проверка каждого элемента массива на отличие от среднего значения более чем на 3 с помощью функции fabs и оператора if
  12. Увеличение значения переменной count при обнаружении элемента, отличающегося от среднего значения более чем на 3
  13. Вывод количества элементов, отличающихся от среднего значения более чем на 3, с помощью функции printf
  14. Освобождение памяти, выделенной под массив, с помощью функции free
  15. Возврат значения 0, сигнализирующего о завершении работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.8 из 5
Похожие ответы