输入一行字符串,内容是一个数学表达式,类似“111+22”,中间的运算符可以是+、-、*、/,存入字符数组s中,要求输出算式中的两个整数,并给出算式的最终结果。
时间: 2024-02-12 13:08:07 浏览: 109
好的,以下是一个示例的 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s); // 读入一行字符串
// 找到运算符的位置
int op_pos;
if (s.find('+') != string::npos) {
op_pos = s.find('+');
} else if (s.find('-') != string::npos) {
op_pos = s.find('-');
} else if (s.find('*') != string::npos) {
op_pos = s.find('*');
} else if (s.find('/') != string::npos) {
op_pos = s.find('/');
} else {
cout << "输入的字符串不是一个合法的数学表达式" << endl;
return 0;
}
// 提取两个整数
int num1 = stoi(s.substr(0, op_pos));
int num2 = stoi(s.substr(op_pos + 1));
// 计算最终结果
int result;
switch (s[op_pos]) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
// 输出结果
cout << "算式中的两个整数分别为:" << num1 << " 和 " << num2 << endl;
cout << "算式的最终结果为:" << result << endl;
return 0;
}
```
代码中使用了 `string` 类型来存储输入的数学表达式,通过 `find` 函数查找运算符的位置,然后使用 `substr` 函数提取两个整数。最后根据运算符进行计算,并输出结果。
阅读全文