用 C 语言计算数据集的平均值

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在 C 编程中计算数据集的平均值。本实验涵盖以下步骤:

  1. 从用户输入中读取一组数字。
  2. 计算这些数字的总和,然后通过将总和除以数字的数量来计算平均值。
  3. 打印计算出的平均值。

本实验提供了一份详细的分步指南,包括示例代码,以帮助你理解在 C 语言中计算平均值的过程。完成本实验后,你将具备使用 C 编程分析和汇总数值数据的技能。

读取一组数字

在这一步中,你将学习如何在 C 编程中读取一组数字。我们将创建一个简单的程序,允许用户输入一组数字并将它们存储在一个数组中。

首先,在 ~/project 目录中创建一个新的 C 文件:

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 编程中计算数据集的平均值。