fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <stdexcept> // For handling division by zero
  4.  
  5. // Function to perform addition
  6. double addition(const std::vector<double>& numbers) {
  7. double result = 0.0;
  8. for (double num : numbers) {
  9. result += num;
  10. }
  11. return result;
  12. }
  13.  
  14. // Function to perform subtraction
  15. double subtraction(const std::vector<double>& numbers) {
  16. double result = numbers[0];
  17. for (size_t i = 1; i < numbers.size(); ++i) {
  18. result -= numbers[i];
  19. }
  20. return result;
  21. }
  22.  
  23. // Function to perform multiplication
  24. double multiplication(const std::vector<double>& numbers) {
  25. double result = 1.0;
  26. for (double num : numbers) {
  27. result *= num;
  28. }
  29. return result;
  30. }
  31.  
  32. // Function to perform division
  33. double division(const std::vector<double>& numbers) {
  34. double result = numbers[0];
  35. for (size_t i = 1; i < numbers.size(); ++i) {
  36. if (numbers[i] == 0) {
  37. throw std::invalid_argument("Error: Division by zero!");
  38. }
  39. result /= numbers[i];
  40. }
  41. return result;
  42. }
  43.  
  44. int main() {
  45. char choice;
  46.  
  47. do {
  48. // Display menu
  49. std::cout << "Menu:\n";
  50. std::cout << "1. Addition\n";
  51. std::cout << "2. Subtraction\n";
  52. std::cout << "3. Multiplication\n";
  53. std::cout << "4. Division\n";
  54. std::cout << "5. Quit\n";
  55. std::cout << "Enter your choice: ";
  56. std::cin >> choice;
  57.  
  58. // Validate choice
  59. if (choice < '1' || choice > '5') {
  60. std::cerr << "Invalid choice. Please enter a number from 1 to 5." << std::endl;
  61. continue;
  62. }
  63.  
  64. // Perform operation based on choice
  65. if (choice == '5') {
  66. std::cout << "Exiting program..." << std::endl;
  67. break;
  68. }
  69.  
  70. int numNumbers;
  71. std::cout << "How many numbers do you want to " << (choice == '4' ? "divide" : "use") << "? ";
  72. std::cin >> numNumbers;
  73.  
  74. // Input numbers
  75. std::vector<double> numbers(numNumbers);
  76. std::cout << "Enter " << numNumbers << " numbers: ";
  77. for (int i = 0; i < numNumbers; ++i) {
  78. std::cin >> numbers[i];
  79. }
  80.  
  81. // Perform selected operation
  82. double result;
  83. try {
  84. switch (choice) {
  85. case '1':
  86. result = addition(numbers);
  87. break;
  88. case '2':
  89. result = subtraction(numbers);
  90. break;
  91. case '3':
  92. result = multiplication(numbers);
  93. break;
  94. case '4':
  95. result = division(numbers);
  96. break;
  97. default:
  98. result = 0.0; // This should never happen
  99. break;
  100. }
  101. // Display result
  102. std::cout << "Result: " << result << std::endl;
  103. } catch (const std::invalid_argument& e) {
  104. std::cerr << e.what() << std::endl;
  105. }
  106.  
  107. } while (true);
  108.  
  109. return 0;
  110. }
Success #stdin #stdout 0.02s 25988KB
stdin
Standard input is empty
stdout
#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;
}