大概思路如下:
用字符数组ch接收算式字符串,依次判断算术符号是否为乘除号。用数组flag存其结果是否为24,是为1,否为0。
计算过程如下:
一、若op1为乘号或者除号:
①若op2也为乘号或者除号,形式有两种:xxx和xx+(注意题目中用例的乘号是x不是*!!),两种形式都可按顺序计算,即((ab)c)d)和(((ab)c)+d);
(abcd代表算式的四个数字,用括号代表计算顺序,按计算顺序调用计算函数compute())
②若op2不为乘号或者除号,形式也有两种:x+x和x++,两种形式都可按相同顺序计算,即((ab)+(cd))和((ab)+(c+d));
二、若op1不为乘号或者除号:
①若op2为乘号或者除号,形式有两种:+xx和+x+,两种形式都可按相同顺序计算,即(a+((bc)d))和(a+((bc)+d));
②若op2不为乘号或者除号,形式也有两种:++x和+++,两种形式都可按相同顺序计算,即(a+(b+(cd)))和(a+(b+(c+d)));
代码如下:
#include<iostream>
using namespace std;
//判断是否为乘除法
bool iscc(char c)
{
if(c=='x'||c=='/')
return true;
else
return false;
}
int compute(char op,int num1,int num2)
{