#include #include #include #include #include #include using namespace std; void add_mountain(vector& names, vector& heights) { cout << "Name des Berges: "; string name; getline(cin >> ws, name); // Check if already exists if (find(names.begin(), names.end(), name) != names.end()) { cout << "Schon vorhanden." << endl; return; } cout << "Höhe: "; int height; if (!(cin >> height)) { cout << "Ungültige Eingabe! Bitte eine Zahl angeben." << endl; cin.clear(); cin.ignore(numeric_limits::max(), '\n'); return; } names.push_back(name); heights.push_back(height); cout << "'" << name << "' mit " << height << " m wurde hinzugefügt." << endl; } void display_mountains(const vector& names, const vector& heights) { cout << "\nBergliste:\n"; for (size_t i = 0; i < names.size(); ++i) { cout << " • " << names[i] << ": " << heights[i] << " m\n"; } } pair get_highest_mountain(const vector& names, const vector& heights) { auto it = max_element(heights.begin(), heights.end()); size_t index = distance(heights.begin(), it); return { names[index], *it }; } double calculate_average_height(const vector& heights) { double sum = accumulate(heights.begin(), heights.end(), 0); return sum / heights.size(); } int count_3000ers(const vector& heights) { return count_if(heights.begin(), heights.end(), [](int h) { return h >= 3000; }); } int main() { cout << "Berge Österreich" << endl; vector mountain_names = { "Großglockner", "Wildspitze", "Weißkugel", "Großvenediger" }; vector mountain_heights = { 3798, 3768, 3738, 3657 }; while (true) { cout << "Neue Eingabe (j/n)? "; string choice; cin >> choice; if (choice == "j" || choice == "J") { add_mountain(mountain_names, mountain_heights); } else if (choice == "n" || choice == "N") { break; } else { cout << "Bitte nur 'j' oder 'n' eingeben." << endl; } } display_mountains(mountain_names, mountain_heights); auto [highest_name, highest_height] = get_highest_mountain(mountain_names, mountain_heights); cout << "\nDer höchste Berg ist der " << highest_name << " mit " << highest_height << " m.\n"; cout << fixed << setprecision(1); double avg_height = calculate_average_height(mountain_heights); cout << "Die durchschnittliche Höhe beträgt " << avg_height << " m.\n"; int count = count_3000ers(mountain_heights); cout << "In der Liste sind " << count << " 3000er gespeichert.\n"; return 0; }