#include<iostream>

int main()
{
    double a, b = 0, c = 0;
    std::cout << "请输入数据:" << std::endl << "退出按ctrl+z后回车" << std::endl;
    while (std::cin >> a) {
        b = b + a;
        c++;
    }
    b = b / c;
    std::cout << "平均数为:" << b << std::endl;
}


/*
CSDN资料

#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

int main() {
    vector<double> nums;
    double num;

    while (cin >> num)
        nums.push_back(num);

    cout << accumulate(nums.begin(), nums.end(), 0.0) / nums.size() << endl;
}
*/

#include <iostream>    // 引入标准输入输出流库
#include <numeric>     // 引入numeric库，用于使用accumulate函数
#include <vector>      // 引入vector容器库

using namespace std;

int main() {
    vector<double> nums; // 定义一个动态数组，用于存储用户输入的数值
    double num;          // 用于接收用户输入的单个数值

    // 循环读取用户输入的数值，直到输入结束（Ctrl+Z 或 Ctrl+D 后回车）
    while (cin >> num)
        nums.push_back(num); // 将输入的数值添加到vector中

    // 使用accumulate计算vector中所有数值的总和，并除以数值个数以计算平均值
    // 初始值设为0.0，避免因类型推导导致整型初始值
    cout << accumulate(nums.begin(), nums.end(), 0.0) / nums.size() << endl;

    return 0; // 程序结束
}
