Найти индексы элементов массива, значение которых ближе всего к найденному среднему арифметическому - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напишите программу, которая находит среднее арифметическое между максимальным элементом и минимальным элементом массива, а также находит индекс(или индексы) элемента(ов), значение которого ближе всего к найденному среднему арифметическому. Подскажите как найти индексы элементов значение которых ближе всего к среднему арифметическому
double m[10] = { 2.2, 3.1, 7.7, 9.1, 6.5, 4.6, 3.5, 5.4, 1.4, 7.6 };
double sr_ar, max = 0, min = 10;
for (int i = 0; i < 10; i++)
{
    printf("m[%d] = %.1lf\n", i, m[i]);
    if (max < m[i]) max = m[i];
    if (min > m[i]) min = m[i];
}
printf("\nmax = %.1lf\n", max);
printf("min = %.1lf\n", min);
sr_ar = (double)(max + min) / 2;
printf("Среднее арифметическое = %.1lf\n", sr_ar);

Решение задачи: «Найти индексы элементов массива, значение которых ближе всего к найденному среднему арифметическому»

textual
Листинг программы
#include <stdio.h>
 
const int N = 10;
int main()
{
    int i, min, mid, max, x, y, sum = 0, A[10] = {4, 2, -7, 24, -60, 0, 108, - 72, 19, 54};
    min = A[0];
    max = A[0];
    for(i = 0; i < N; i++){
        sum += A[i];
        if(A[i] > max)
            max = A[i];
        if(A[i] < min)
            min = A[i];
    }
    mid = sum / N;
    for(i = 0; i < N; i++){
        if(A[i] > min && A[i] < mid){
            min = A[i];
            x = i;
        }
        if(A[i] < max && A[i] > mid){
            max = A[i];
            y = i;
        }
    }
    printf("Arithmetic mean is %d\n", mid);
    printf("and next values is A[%d] = %d and A[%d] = %d\n", x, min, y, max);
    return 0;
}

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

  1. Подключение стандартной библиотеки для работы с вводом/выводом (stdio.h).
  2. Объявление константы N, которая задает размер массива A.
  3. Ввод данных в массив A.
  4. Инициализация переменных min и max значением первого элемента массива A.
  5. Вычисление суммы элементов массива A.
  6. Вычисление минимального и максимального значения в массиве A.
  7. Вычисление среднего арифметического (mid) путем деления суммы элементов массива на N.
  8. Поиск элемента массива, значение которого ближе всего к min.
  9. Поиск элемента массива, значение которого ближе всего к max.
  10. Вывод среднего арифметического на экран.
  11. Вывод на экран значений найденных элементов (min, max, x, y).
  12. Возврат 0, что означает успешный конец работы программы.

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


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

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

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