Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
115512 | 胡海峰老师 | 22计算算术表达式 | C++ | Accepted | 1 MS | 284 KB | 1219 | 2025-03-31 10:54:06 |
#include <iostream> #include <string> #include <cctype> #include <cstdlib> // for std::atoi using namespace std; // 函数:计算表达式的值 int calculate(const string& expression) { int num1 = 0, num2 = 0; char op = '\0'; // 提取操作数和运算符 int i = 0; while (i < expression.length() && isdigit(expression[i])) { num1 = num1 * 10 + (expression[i] - '0'); i++; } op = expression[i++]; while (i < expression.length()) { num2 = num2 * 10 + (expression[i] - '0'); i++; } // 根据运算符计算结果 switch (op) { case '+': return num1 + num2; case '-': return num1 - num2; case '*': return num1 * num2; case '/': return num1 / num2; case '%': return num1 % num2; default: return 0; // 不合法的运算符 } } int main() { int n; cin >> n; // 输入表达式的数量 cin.ignore(); // 忽略换行符 for (int i = 0; i < n; ++i) { string expression; getline(cin, expression); // 读取一行表达式 cout << calculate(expression) << endl; // 输出结果 } return 0; }