Функция: подсчитать количество чисел, превышающих среднее арифметическое значение элементов массива - C (СИ)
Формулировка задачи:
Добрый вечер!Преподаватель дал новую тему,но объяснений по ней-ноль
Может кто-нибудь помочь с этой задачей?
Вот условие:Создать функцию, которая в одномерном массиве подсчитывает количество чисел, превышающих среднее арифметическое значение элементов массива. Определить в матрице строки, в которых количество элементов, превышающих среднее значение, максимально и минимально
Решение задачи: «Функция: подсчитать количество чисел, превышающих среднее арифметическое значение элементов массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define L 12 #define M 14 int f(int *arr, int size) { int avg = 0; for (int i = 0; i < size; i++) avg += arr[i]; avg /= size; int count = 0; for (int i = 0; i < size; i++) if (arr[i] > avg) count++; return count; } int main(void) { int matrix[L][M]; srand(time(NULL)); for (int i = 0; i < L; i++) for (int j = 0; j < M; j++) matrix[i][j] = rand() % 100; for (int i = 0; i < L; i++, printf("\n")) for (int j = 0; j < M; j++) printf("%3d ", matrix[i][j]); int maxNo = 0; int minNo = maxNo; int max = f(matrix[0], M); int min = max; int count = 0; for (int i = 1; i < L; i++) { count = f(matrix[i], M); if (max < count) { max = count; maxNo = i; } if (min > count) { min = count; minNo = i; } } printf("minNo: %d, maxNo: %d\n",minNo, maxNo); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размер массива (L, M)
- Определяем функцию f, которая принимает два аргумента: указатель на массив и его размер
- Внутри функции инициализируем переменную avg для хранения среднего значения
- С помощью цикла for проходим по всем элементам массива и суммируем их значения в переменную avg
- Делим полученную сумму на размер массива для получения среднего значения
- Инициализируем переменную count для хранения количества чисел, превышающих среднее значение
- С помощью цикла for проходим по всем элементам массива и сравниваем их значения со средним значением. Если число больше среднего, увеличиваем значение переменной count на 1
- Возвращаем значение переменной count из функции
- В функции main инициализируем массив matrix случайными значениями с помощью функции rand()
- С помощью двух вложенных циклов for выводим значения массива на экран, добавляя символ пробела после каждого числа
- Инициализируем переменные maxNo, minNo, max и min для хранения минимального и максимального количества чисел в массиве и их индексов
- С помощью цикла for проходим по всем элементам массива, начиная со второго, и находим максимальное и минимальное количество чисел в массиве
- Выводим на экран значения переменных minNo и maxNo, которые содержат индексы минимального и максимального количества чисел в массиве
- Возвращаем 0 из функции main, чтобы указать на успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д