You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++文件读取程序中计算整数的总和与平均值?

修改后的整数文件读取与统计程序

要实现读取文件中整数的总和与平均值计算,只需要在原读取程序中添加总和变量、计数变量,并在读取过程中累加数值、统计数量,最后计算平均值即可。以下是修改后的完整代码:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream inputfile;
    int num;
    // 初始化总和为0,计数为0
    long long sum = 0; // 用long long避免大数溢出
    int count = 0;

    inputfile.open("savedata.dat");
    // 检查文件是否成功打开
    if (!inputfile.is_open()) {
        cout << "无法打开文件savedata.dat" << endl;
        return 1;
    }

    cout << "Contents of file: " << endl;
    while (inputfile >> num) // 读取直到文件结束
    {
        cout << num << endl;
        sum += num; // 累加当前整数到总和
        count++;    // 统计整数个数
    }

    // 计算并输出总和与平均值
    if (count > 0) { // 避免除以0的情况
        double average = static_cast<double>(sum) / count; // 强制转换为浮点类型计算平均值
        cout << "\n统计结果:" << endl;
        cout << "整数总和:" << sum << endl;
        cout << "整数平均值:" << average << endl;
    } else {
        cout << "\n文件中没有整数数据" << endl;
    }

    inputfile.close();
    return 0;
}

关键修改点说明:

  • 添加统计变量:声明sum(存储总和)和count(统计整数个数),初始值都设为0。用long long类型的sum是为了避免当整数数量多、数值大时出现溢出问题。
  • 读取时累加与计数:在while循环的每次迭代中,把读取到的num加到sum里,同时让count自增1。
  • 计算平均值:用static_cast<double>(sum)把总和转换为浮点类型,这样除法结果会是浮点数,避免整数除法导致的精度丢失。
  • 健壮性处理:添加了文件打开失败的判断,以及文件为空时的处理(避免除以0错误)。

内容的提问来源于stack exchange,提问作者user20456035

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:40:28