Untitled
unknown
plain_text
6 months ago
1.6 kB
17
Indexable
#include <iostream>
#include <cctype>
#include <stdexcept>
using namespace std;
int main() {
string expr;
cout << "Enter a simple expression (single-digit numbers, +, -, *, / only): ";
cin >> expr;
int result = 0;
char lastOperator = '+'; // Assume the first operator is '+' for the first digit
// Loop through the expression one character at a time
for (int i = 0; i < expr.length(); ++i) {
char ch = expr[i];
// Check if character is a digit
if (isdigit(ch)) {
int num = ch - '0'; // Convert character to integer
// Perform operation based on the last operator encountered
if (lastOperator == '+') {
result += num;
} else if (lastOperator == '-') {
result -= num;
} else if (lastOperator == '*') {
result *= num;
} else if (lastOperator == '/') {
// Handle division by zero
if (num == 0) {
cout << "Error: Division by zero is not allowed!" << endl;
return 1;
}
result /= num;
}
}
// Check if character is an operator
else if (ch == '+' || ch == '-' || ch == '*' || ch == '/') {
lastOperator = ch; // Update last operator to the current one
}
// Invalid character handling
else {
cout << "Invalid character: " << ch << endl;
return 1;
}
}
cout << "Result = " << result << endl;
return 0;
}
Editor is loading...
Leave a Comment