Вычисление среднего значения набора данных в C

CBeginner
Практиковаться сейчас

Введение

В этом лабораторном практикуме вы научитесь вычислять среднее значение набора данных на языке C. Практикум охватывает следующие шаги:

  1. Чтение массива чисел из пользовательского ввода.
  2. Вычисление суммы чисел, а затем вычисление среднего значения путём деления суммы на количество чисел.
  3. Вывод вычисленного среднего значения.

Практикум предоставляет пошаговое руководство, включая примеры кода, чтобы помочь вам понять процесс вычисления среднего значения на языке C. К концу этого практикума вы будете обладать навыками анализа и обобщения числовых данных с использованием языка программирования C.

Чтение массива чисел

В этом шаге вы узнаете, как читать массив чисел в программировании на языке C. Мы создадим простую программу, которая позволит пользователю ввести набор чисел и сохранить их в массиве.

Сначала создадим новый файл C в каталоге ~/project:

cd ~/project
nano mean_calculation.c

Теперь введите следующий код:

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;

    // Запрос количества элементов у пользователя
    printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Валидация ввода
    if (count <= 0 || count > MAX_SIZE) {
        printf("Неверное количество элементов!\n");
        return 1;
    }

    // Чтение чисел в массив
    printf("Введите %d чисел:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Введите число %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // Вывод введенных чисел
    printf("\nВведенные числа:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

Компилируем программу:

gcc mean_calculation.c -o mean_calculation

Запускаем программу:

./mean_calculation

Пример вывода:

Введите количество элементов (максимум 100): 5
Введите 5 чисел:
Введите число 1: 10
Введите число 2: 20
Введите число 3: 30
Введите число 4: 40
Введите число 5: 50

Введенные числа:
10 20 30 40 50

Давайте разберем ключевые части кода:

  • #define MAX_SIZE 100 устанавливает максимальный размер массива
  • scanf() используется для чтения количества элементов и отдельных чисел
  • Мы валидируем ввод, чтобы убедиться, что он находится в допустимом диапазоне
  • Цикл for используется для ввода и последующего отображения чисел

Эта программа демонстрирует, как:

  1. Объявить массив с максимальным размером
  2. Получить количество элементов от пользователя
  3. Ввести числа в массив
  4. Проверить ввод пользователя
  5. Отобразить введенные числа

Вычисление суммы и среднего значения = Сумма/Количество

В этом шаге мы расширим предыдущую программу, чтобы вычислить сумму и среднее значение чисел, введённых пользователем.

Откройте существующий файл:

cd ~/project
nano mean_calculation.c

Измените код, включив в него вычисление суммы и среднего значения:

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;
    int sum = 0;
    float mean;

    // Запрос количества элементов у пользователя
    printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Валидация ввода
    if (count <= 0 || count > MAX_SIZE) {
        printf("Неверное количество элементов!\n");
        return 1;
    }

    // Чтение чисел в массив и вычисление суммы
    printf("Введите %d чисел:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Введите число %d: ", i + 1);
        scanf("%d", &numbers[i]);
        sum += numbers[i];
    }

    // Вычисление среднего значения
    mean = (float)sum / count;

    // Вывод результатов
    printf("\nВведенные числа:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    printf("Сумма чисел: %d\n", sum);
    printf("Среднее значение чисел: %.2f\n", mean);

    return 0;
}

Компилируем программу:

gcc mean_calculation.c -o mean_calculation

Запускаем программу:

./mean_calculation

Пример вывода:

Введите количество элементов (максимум 100): 5
Введите 5 чисел:
Введите число 1: 10
Введите число 2: 20
Введите число 3: 30
Введите число 4: 40
Введите число 5: 50

Введенные числа:
10 20 30 40 50
Сумма чисел: 150
Среднее значение чисел: 30.00

Ключевые изменения в этой версии:

  • Добавлена переменная sum для отслеживания общей суммы всех чисел
  • Вычисление суммы интегрировано в цикл ввода
  • Среднее значение вычисляется путём деления суммы на количество
  • Используется приведение типа (float), чтобы обеспечить деление с плавающей точкой
  • Добавлено отображение суммы и среднего значения с форматированным выводом

Программа теперь демонстрирует:

  1. Вычисление суммы элементов массива
  2. Вычисление среднего арифметического
  3. Вывод результатов с точностью

Вывод среднего значения

На этом заключительном шаге мы переработаем код, создав функцию для вычисления и вывода среднего значения, что сделает нашу программу более модульной и читаемой.

Откройте существующий файл:

cd ~/project
nano mean_calculation.c

Обновите код, добавив отдельную функцию для вычисления среднего значения:

#include <stdio.h>

#define MAX_SIZE 100

// Функция для вычисления и вывода среднего значения
void calculateMean(int numbers[], int count) {
    if (count <= 0) {
        printf("Ошибка: Нет чисел для вычисления среднего.\n");
        return;
    }

    int sum = 0;
    float mean;

    // Вычисление суммы
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // Вычисление среднего значения
    mean = (float)sum / count;

    // Вывод подробной статистики
    printf("\nСтатистика:\n");
    printf("Количество элементов: %d\n", count);
    printf("Сумма чисел: %d\n", sum);
    printf("Среднее значение чисел: %.2f\n", mean);
}

int main() {
    int numbers[MAX_SIZE];
    int count;

    // Запрос количества элементов у пользователя
    printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
    scanf("%d", &count);

    // Валидация ввода
    if (count <= 0 || count > MAX_SIZE) {
        printf("Неверное количество элементов!\n");
        return 1;
    }

    // Ввод чисел в массив
    printf("Введите %d чисел:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Введите число %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // Вывод введенных чисел
    printf("\nВведенные числа:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    // Вычисление и вывод среднего значения
    calculateMean(numbers, count);

    return 0;
}

Компилируем программу:

gcc mean_calculation.c -o mean_calculation

Запускаем программу:

./mean_calculation

Пример вывода:

Введите количество элементов (максимум 100): 4
Введите 4 числа:
Введите число 1: 10
Введите число 2: 20
Введите число 3: 30
Введите число 4: 40

Введенные числа:
10 20 30 40
Статистика:
Количество элементов: 4
Сумма чисел: 100
Среднее значение чисел: 25.00

Основные улучшения в этой версии:

  • Создана отдельная функция calculateMean()
  • Добавлена более подробная статистическая информация
  • Улучшена обработка ошибок для граничных случаев
  • Сохранена основная функциональность предыдущих шагов
  • Код стал более модульным и удобным для чтения

Программа демонстрирует:

  1. Функциональный подход к вычислениям
  2. Полноценный вывод статистической информации
  3. Модульное проектирование кода

Резюме

В этом лабораторном практикуме вы научитесь вводить массив чисел на языке C, вычислять сумму и среднее значение набора данных, а затем выводить среднее значение. Сначала вы запросите у пользователя набор чисел и сохраните их в массиве. Затем вы вычислите сумму чисел и разделите её на количество, чтобы найти среднее значение. Наконец, вы выведете вычисленное среднее значение.

Ключевые шаги, охваченные в этом практикуме, включают объявление массива с максимальным размером, получение количества элементов от пользователя, ввод чисел в массив, проверку ввода пользователя и вывод введенных чисел. К концу практикума вы получите чёткое понимание того, как вычислить среднее значение набора данных на языке C.