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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. const int N = 10;
  4. int main()
  5. {
  6.     int i, min, mid, max, x, y, sum = 0, A[10] = {4, 2, -7, 24, -60, 0, 108, - 72, 19, 54};
  7.     min = A[0];
  8.     max = A[0];
  9.     for(i = 0; i < N; i++){
  10.         sum += A[i];
  11.         if(A[i] > max)
  12.             max = A[i];
  13.         if(A[i] < min)
  14.             min = A[i];
  15.     }
  16.     mid = sum / N;
  17.     for(i = 0; i < N; i++){
  18.         if(A[i] > min && A[i] < mid){
  19.             min = A[i];
  20.             x = i;
  21.         }
  22.         if(A[i] < max && A[i] > mid){
  23.             max = A[i];
  24.             y = i;
  25.         }
  26.     }
  27.     printf("Arithmetic mean is %d\n", mid);
  28.     printf("and next values is A[%d] = %d and A[%d] = %d\n", x, min, y, max);
  29.     return 0;
  30. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы