缘由ccf201903-2二十四点我用暴力破解做的,但是两个程序一个拿到了满分,一个拿到了50分,看了很长时间也没看出问题在哪里,希望有英雄慧眼帮我看一下-编程语言-CSDN问答
void INT四则优先算式()
{//缘由https://ask.csdn.net/questions/7786290?spm=1005.2025.3001.5141int a = 0, b = 0, c = 0, d = 0, zc = 0;char f1, f2, f3;std::cin >> a >> f1 >> b >> f2 >> c >> f3 >> d;if (f1 != '+'&&f1 != '-'){ zc = (f1 == '/' ? a / b : a*b);if (f3 != '+'&&f3 != '-'&&(f2=='+'||f2=='-'))(f3 == '/' ? f2 == '+' ? zc += c / d : zc -= c / d : f2 == '+' ? zc += c*d : zc -= c*d);else{if (f2 != '+'&&f2 != '-')(f2 == '/' ? zc /= c : zc *= c);if (f3 != '+'&&f3 != '-')(f3 == '/' ? zc /= d : zc *= d);if (f2 == '+')zc += c; else if (f2 == '-')zc -= c;if (f3 == '+')zc += d; else if (f3 == '-') zc -= d;}}else if (f2 != '+'&&f2 != '-'){zc = (f2 == '/' ? b / c : c*b);if (f3 != '+'&&f3 != '-')(f3 == '/' ? zc /= d : zc *= d);if (f1 == '+')zc += a; else if (f1 == '-')zc -= a;if (f3 == '+')zc += d; else if (f3 == '-') zc -= d;}else if (f3 != '+'&&f3 != '-'){zc = (f3 == '/' ? c / d : c*d);if (f1 == '+')zc += a; else if (f1 == '-') zc -= a;if (f2 == '+')zc += b; else if (f2 == '-') zc -= b;}else{zc = a;if (f1 == '+')zc += b; else zc -= b;if (f2 == '+')zc += c; else zc -= c;if (f3 == '+')zc += d; else zc -= d;}std::cout << zc << std::endl;
}
10
9+3+4*3
5+4*5*5
7-9-9+8
5*6/5*4
3+5+7+9
1*1+9-9
1*9-5/9
8/5+6*9
6*7-3*6
6*4+4/5