Wo hast Du denn ein Problem? An welcher Stelle kommst Du nicht weiter?
#include <iostream>
#include <vector>
#include <string>
int main(int argc, char **argv)
{
if (argc == 2)
{
std::string s = argv[1];
std::vector<int> ints;
size_t pos = 0;
std::string token;
while ((pos = s.find(",")) != std::string::npos)
{
token = s.substr(0, pos);
s.erase(0, pos + 1);
ints.push_back(std::stoi(token));
}
ints.push_back(std::stoi(s));
double min = ints[0], max = ints[0], sum = 0, avg = 0;
for (size_t i = 0; i < ints.size(); i++)
{
int j = ints[j];
if (j < min)
min = j;
if (j > max)
max = j;
sum += j;
avg += (double)j / (double)ints.size();
}
std::cout << min << ", " << max << ", " << ints.size() << ", " << sum << ", " << avg << std::endl;
}
return 0;
}
#include <cstdlib>
#include <iterator>
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <numeric>
int main(int argc, char **argv)
{
if (argc == 2)
{
std::string s = argv[1];
std::replace(std::begin(s), std::end(s), ',', ' ');
std::istringstream iss(s);
std::vector<int> values(std::istream_iterator<int>{iss}, std::istream_iterator<int>{});
auto min_max = std::minmax_element(std::begin(values), std::end(values));
auto sum = std::accumulate(std::begin(values), std::end(values), 0);
auto average = sum / static_cast<double>(values.size());
std::cout << "Minimum: " << *min_max.first
<< "\nMaximum: " << *min_max.second
<< "\nAnzahl: " << values.size()
<< "\nSumme: " << sum
<< "\nDurchschnitt: " << std::fixed << std::setprecision(1) << average << "\n\n";
return 0;
}
return 1;
}