Заменить нулевые элементы на среднее арифметическое наименьшего и наибольшего элементов - C (СИ)
Формулировка задачи:
Заменить нулевые элементы на среднее арифметическое наименьшего и наибольшего элементов
Размер масива -11
Тип- действительный
через функцию
Желательно не у visual studio(но можно)
Решение задачи: «Заменить нулевые элементы на среднее арифметическое наименьшего и наибольшего элементов»
textual
Листинг программы
#include <stdio.h> #define N 11 // заполняем массив значениями. полученными с клавиатуры void input_arr (double * s) { int i; for (i=0; i<N; i++) { printf("a[%i] = ", i); scanf("%lf", &s[i]); } } // машинный эпсилон для сравнения вещественных double m_eps (void) { double e = 1.0; while (1.0 + e / 2.0 > 1.0) e /= 2.0; return e; } // заменяем нулевые элементы средним арифметическим void change_arr (double * s, double g) { int i; for (i=0; i<N; i++) if (s[i]-0.0 <= m_eps()) s[i] = g; } // ГЛАВНАЯ ФУНКЦИЯ int main (void) { double a[N]; // массив input_arr(a); // заполняем массив // находим минимальное и максимальное значения в массиве: int i; double min, max; for (i=0; i<N; i++) { if (i < 1) min = max = a[i]; if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; printf("%5.2lf", a[i]); // и "под шумок" выводим его на экран } printf("\n"); // теперь находим среднее арифметическое double av = (min+max) / 2.0; // отправляем массив в функцию для придания ему бодрости и замены нулевых change_arr(a, av); // выводим получившийся массив на экран for(i=0; i<N; i++) printf("%5.2lf", a[i]); printf("\n"); return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода
- Определяем размер массива N равным 11
- Функция input_arr() заполняет массив a значениями, полученными с клавиатуры
- Функция m_eps() вычисляет машинное эпсилон для сравнения вещественных чисел
- Функция change_arr() заменяет нулевые элементы массива на среднее арифметическое min и max
- В функции main() создаем массив a типа double и инициализируем его нулями
- Заполняем массив a значениями с клавиатуры с помощью функции input_arr()
- Находим минимальное и максимальное значение в массиве с помощью цикла и сохраняем их в переменные min и max
- Выводим массив a на экран с помощью цикла и функции printf()
- Вычисляем среднее арифметическое min и max и сохраняем его в переменную av
- Отправляем массив a в функцию change_arr() для замены нулевых элементов на среднее арифметическое min и max
- Выводим измененный массив a на экран с помощью цикла и функции printf()
- Возвращаем 0 из функции main(), что означает успешное завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д