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

如何从txt文件获取最大值与负数数量并将结果输出至文件

解决从numbers.txt找最大值、统计负数并输出指定结果的问题

需求明确:从numbers.txt文件读取数据,找出最大值、统计负数数量;总和要同时输出到控制台和另一个文本文件,其余结果仅输出到控制台。

你的numbers.txt内容

-4
53
-5
-3
2

问题分析

你原来的代码只处理了总和和总数,没在读取数据的过程中计算最大值和负数数量;尝试的代码里用了num[i]但未定义数组,且INT_MIN需要引入<climits>头文件才能使用,变量也没做正确初始化。

修改后的完整代码

#include <iostream>
#include <fstream>
#include <climits> // 引入INT_MIN的头文件
using namespace std;

int main() {
    int n = 0;
    int sum = 0, total = 0;
    int highest = INT_MIN; // 初始化最大值为最小整数,确保第一个数能覆盖它
    int negativeCount = 0; // 初始化负数计数器为0

    // 读取numbers.txt
    ifstream inputFile("numbers.txt");
    if (!inputFile) { // 检查文件是否成功打开
        cout << "无法打开numbers.txt文件" << endl;
        return 1;
    }

    while (inputFile >> n) {
        sum += n;
        total++;

        // 更新最大值
        if (n > highest) {
            highest = n;
        }

        // 统计负数数量
        if (n < 0) {
            negativeCount++;
        }
    }
    inputFile.close(); // 关闭输入文件

    // 计算平均值,用float避免整数除法丢失精度
    float average = static_cast<float>(sum) / total;

    // 输出总和到控制台
    cout << "Total result: " << sum << endl;
    // 输出总和到result.txt文件
    ofstream outputFile("result.txt");
    if (outputFile) {
        outputFile << "Total result: " << sum << endl;
        outputFile.close();
    } else {
        cout << "无法创建输出文件result.txt" << endl;
    }

    // 输出其余结果到控制台
    cout << "Numbers added: " << total << endl;
    cout << "Average number: " << average << endl;
    cout << "Maximum number: " << highest << endl;
    cout << "Negative numbers: " << negativeCount << endl;

    return 0;
}

关键修改说明

  • 新增<climits>头文件:用来调用INT_MIN,确保最大值初始值比所有可能的整数都小,第一个读取的数能正确赋值给它。
  • 变量初始化:highest设为INT_MIN,negativeCount设为0,避免未初始化的垃圾值影响结果。
  • 读取循环内逻辑优化:每读一个数就同步更新最大值、统计负数,无需额外定义数组(新手没必要用数组,浪费内存)。
  • 文件操作优化:用ifstream专门读文件,ofstream专门写文件,添加文件打开失败判断,避免程序崩溃。
  • 平均值计算优化:用static_cast<float>做类型转换,保证除法是浮点数运算,不会丢失小数部分。
  • 修复拼写错误:把Maxiumum改成正确的Maximum。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:20:22