#include <iostream> #include <vector> #include <stdexcept> // For handling division by zero // Function to perform addition double addition(const std::vector<double>& numbers) { double result = 0.0; for (double num : numbers) { result += num; } return result; } // Function to perform subtraction double subtraction(const std::vector<double>& numbers) { double result = numbers[0]; for (size_t i = 1; i < numbers.size(); ++i) { result -= numbers[i]; } return result; } // Function to perform multiplication double multiplication(const std::vector<double>& numbers) { double result = 1.0; for (double num : numbers) { result *= num; } return result; } // Function to perform division double division(const std::vector<double>& numbers) { double result = numbers[0]; for (size_t i = 1; i < numbers.size(); ++i) { if (numbers[i] == 0) { throw std::invalid_argument("Error: Division by zero!"); } result /= numbers[i]; } return result; } int main() { char choice; do { // Display menu std::cout << "Menu:\n"; std::cout << "1. Addition\n"; std::cout << "2. Subtraction\n"; std::cout << "3. Multiplication\n"; std::cout << "4. Division\n"; std::cout << "5. Quit\n"; std::cout << "Enter your choice: "; std::cin >> choice; // Validate choice if (choice < '1' || choice > '5') { std::cerr << "Invalid choice. Please enter a number from 1 to 5." << std::endl; continue; } // Perform operation based on choice if (choice == '5') { std::cout << "Exiting program..." << std::endl; break; } int numNumbers; std::cout << "How many numbers do you want to " << (choice == '4' ? "divide" : "use") << "? "; std::cin >> numNumbers; // Input numbers std::vector<double> numbers(numNumbers); std::cout << "Enter " << numNumbers << " numbers: "; for (int i = 0; i < numNumbers; ++i) { std::cin >> numbers[i]; } // Perform selected operation double result; try { switch (choice) { case '1': result = addition(numbers); break; case '2': result = subtraction(numbers); break; case '3': result = multiplication(numbers); break; case '4': result = division(numbers); break; default: result = 0.0; // This should never happen break; } // Display result std::cout << "Result: " << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << e.what() << std::endl; } } while (true); return 0; }
Standard input is empty
#include <iostream> #include <vector> #include <stdexcept> // For handling division by zero // Function to perform addition double addition(const std::vector<double>& numbers) { double result = 0.0; for (double num : numbers) { result += num; } return result; } // Function to perform subtraction double subtraction(const std::vector<double>& numbers) { double result = numbers[0]; for (size_t i = 1; i < numbers.size(); ++i) { result -= numbers[i]; } return result; } // Function to perform multiplication double multiplication(const std::vector<double>& numbers) { double result = 1.0; for (double num : numbers) { result *= num; } return result; } // Function to perform division double division(const std::vector<double>& numbers) { double result = numbers[0]; for (size_t i = 1; i < numbers.size(); ++i) { if (numbers[i] == 0) { throw std::invalid_argument("Error: Division by zero!"); } result /= numbers[i]; } return result; } int main() { char choice; do { // Display menu std::cout << "Menu:\n"; std::cout << "1. Addition\n"; std::cout << "2. Subtraction\n"; std::cout << "3. Multiplication\n"; std::cout << "4. Division\n"; std::cout << "5. Quit\n"; std::cout << "Enter your choice: "; std::cin >> choice; // Validate choice if (choice < '1' || choice > '5') { std::cerr << "Invalid choice. Please enter a number from 1 to 5." << std::endl; continue; } // Perform operation based on choice if (choice == '5') { std::cout << "Exiting program..." << std::endl; break; } int numNumbers; std::cout << "How many numbers do you want to " << (choice == '4' ? "divide" : "use") << "? "; std::cin >> numNumbers; // Input numbers std::vector<double> numbers(numNumbers); std::cout << "Enter " << numNumbers << " numbers: "; for (int i = 0; i < numNumbers; ++i) { std::cin >> numbers[i]; } // Perform selected operation double result; try { switch (choice) { case '1': result = addition(numbers); break; case '2': result = subtraction(numbers); break; case '3': result = multiplication(numbers); break; case '4': result = division(numbers); break; default: result = 0.0; // This should never happen break; } // Display result std::cout << "Result: " << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << e.what() << std::endl; } } while (true); return 0; }