Функция: подсчитать количество чисел, превышающих среднее арифметическое значение элементов массива - 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;
}

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

  1. Включаем необходимые заголовочные файлы
  2. Определяем размер массива (L, M)
  3. Определяем функцию f, которая принимает два аргумента: указатель на массив и его размер
  4. Внутри функции инициализируем переменную avg для хранения среднего значения
  5. С помощью цикла for проходим по всем элементам массива и суммируем их значения в переменную avg
  6. Делим полученную сумму на размер массива для получения среднего значения
  7. Инициализируем переменную count для хранения количества чисел, превышающих среднее значение
  8. С помощью цикла for проходим по всем элементам массива и сравниваем их значения со средним значением. Если число больше среднего, увеличиваем значение переменной count на 1
  9. Возвращаем значение переменной count из функции
  10. В функции main инициализируем массив matrix случайными значениями с помощью функции rand()
  11. С помощью двух вложенных циклов for выводим значения массива на экран, добавляя символ пробела после каждого числа
  12. Инициализируем переменные maxNo, minNo, max и min для хранения минимального и максимального количества чисел в массиве и их индексов
  13. С помощью цикла for проходим по всем элементам массива, начиная со второго, и находим максимальное и минимальное количество чисел в массиве
  14. Выводим на экран значения переменных minNo и maxNo, которые содержат индексы минимального и максимального количества чисел в массиве
  15. Возвращаем 0 из функции main, чтобы указать на успешный конец работы программы

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


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

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

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