std::accumulate folds a sequence of numbers into one total that later calculations can reuse.

Accumulate Average

accumulate_average.cpp
#include <iostream>
#include <numeric>
#include <vector>

int main() {
    int extra = ;

    std::vector<int> values{8, 12, extra};
    int total = std::accumulate(values.begin(), values.end(), 0);
    int average = total / static_cast<int>(values.size());

    std::cout << "extra=" << extra << std::endl;
    std::cout << "total=" << total << std::endl;
    std::cout << "average=" << average << std::endl;
    return 0;
}
#include <iostream>
#include <numeric>
#include <vector>

int main() {
    int extra = ;

    std::vector<int> values{8, 12, extra};
    int total = std::accumulate(values.begin(), values.end(), 0);
    int average = total / static_cast<int>(values.size());

    std::cout << "extra=" << extra << std::endl;
    std::cout << "total=" << total << std::endl;
    std::cout << "average=" << average << std::endl;
    return 0;
}
#include <iostream>
#include <numeric>
#include <vector>

int main() {
    int extra = ;

    std::vector<int> values{8, 12, extra};
    int total = std::accumulate(values.begin(), values.end(), 0);
    int average = total / static_cast<int>(values.size());

    std::cout << "extra=" << extra << std::endl;
    std::cout << "total=" << total << std::endl;
    std::cout << "average=" << average << std::endl;
    return 0;
}
accumulate `std::accumulate` starts from an initial value and adds each item in order.
integer average Integer division keeps the whole-number part of the average.