CPP Übung

Aus „Programming: Principles and Practice Using C++“

/*
 Exercise is to first define the amount of numbers n beginning from the first
 to n in a vector, enter a random set of integer values to a vector and then
 sum the amount of n values. Checks to prevent out of range errors must be implemented.
 */

#include "std_lib_facilities.h"

using namespace std;
void checkvecsize (unsigned long vecsize, int n)
{
    if (n>vecsize)
        error("Youw ant to sum more value than are available!\n"); // Check if vector size is enough.
}

int main ()
try
{
    int n;
    
    cout << "Please enter the number of values:\n";
    cin >> n;
    
    bool stop = 0; // to keep the while loop going until told otherwise
    vector<int> numbers;
    int values{};
    int sum = 0;
    string value_check;
    
    cout << "Please enter a couple of number. Press s to stop! \n";
    
    while(!stop)
    {
        if(cin>>values)
            numbers.push_back(values);
        else
        {
            cin.clear();
            cin >> value_check;
            if (value_check=="s")  // by pressing s the while loop stops.
                stop = 1;
            else
                error("Use only numbers or (s) to stop");
        }
            
    }
    
    checkvecsize(numbers.size(), n);
    
    for (int i=0; i<n; i++)
    {
        sum = sum + numbers[i];
    }
    
    cout << "The sum of the first " << n << " values = " << sum << "!\n";
    
}
catch(runtime_error e)
{
    cout << e.what() << '\n';
    
}
catch (...)
{
    cout << "Exiting with unknown error" << '\n';
}