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

如何编写C++程序实现整数序列输入与统计分析功能?

C++ 程序实现:统计输入整数序列的统计信息(输入0终止)

核心实现思路

  • 持续读取用户输入的整数,当输入为0时终止输入流程
  • 全程维护以下统计变量:
    • 整数个数(排除终止符0)
    • 所有整数的总和
    • 序列中的最大值
    • 序列中的最小值
  • 输入终止后,计算平均值(注意浮点精度)和最大最小值的差值,最后输出所有统计结果

完整代码实现

#include <iostream>
#include <climits> // 用于INT_MAX和INT_MIN

using namespace std;

int main() {
    int num;
    int count = 0;
    int sum = 0;
    int max_val = INT_MIN; // 初始化为int类型的最小值
    int min_val = INT_MAX; // 初始化为int类型的最大值

    cout << "请逐个输入整数,输入0结束:" << endl;

    while (true) {
        cin >> num;

        // 输入0时终止循环
        if (num == 0) {
            break;
        }

        // 更新统计变量
        count++;
        sum += num;

        if (num > max_val) {
            max_val = num;
        }
        if (num < min_val) {
            min_val = num;
        }
    }

    // 处理没有有效输入的情况(直接输入0)
    if (count == 0) {
        cout << "未输入任何有效整数。" << endl;
        return 0;
    }

    // 计算平均值(转换为double保证精度)
    double average = static_cast<double>(sum) / count;
    int diff = max_val - min_val;

    // 输出统计结果
    cout << "=== 统计结果 ===" << endl;
    cout << "序列中的整数个数:" << count << endl;
    cout << "整数的平均值:" << average << endl;
    cout << "序列中的最大整数:" << max_val << endl;
    cout << "序列中的最小整数:" << min_val << endl;
    cout << "最大与最小整数的差值:" << diff << endl;

    return 0;
}

代码关键部分说明

  1. 变量初始化:
    • max_val初始化为INT_MIN(<climits>头文件提供),确保第一个有效输入必然能更新最大值
    • min_val初始化为INT_MAX,同理确保第一个有效输入能更新最小值
  2. 循环逻辑:
    • 使用while(true)构建无限循环,输入0时通过break终止
    • 每次输入非0整数时,同步更新计数、总和、最大/最小值
  3. 边界处理:
    • 判断count是否为0,避免用户直接输入0导致的除以0错误和无效统计结果
  4. 精度处理:
    • 计算平均值时将sum转换为double类型,避免整数除法导致的精度丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:24:56