不知道哪里错了:
#include <bits/stdc++.h>
using namespace std;
long double a[INT_MAX] = {0};
int i, j, k, len = 0, temp;
long double sum1 = 0, sum2 = 0, allsum = 0;
/*准备足够的number*/
char c[INT_MAX] = {'\0'};
/*准备足够的symbol*/
long double second(long double sum = 0){
for(i = 0; i <= len; i++){
if(c[i] == '+' || c[i] == '-'){
continue;
}else if(c[i] == '*'){
sum = a[i] * a[i+1];
continue;
}else{
cout << "有不合法的字符";
return 0;
}
}
return sum;
}
long double first(long double sum = 0){
for(i = 0; i <= len; i++){
if(c[i] == '+' || c[i] == '-'){
continue;
}else if(c[i] == '*'){
sum = a[i] * a[i+1];
continue;
}else if(c[i] == '/'){
sum = a[i] * 1.0 / a[i+1];
continue;
}else if(c[i] == '('){
for(j = i; c[j] != ')'; j++){
first();
second();
}
}
}
return sum;
}
int main() {
for(i = 0; c[i] != 'o'; i++){
cin >> a[i] >> c[i];
len++;
}
sum1 = first();
sum2 = second();
allsum = sum1 + sum2;
cout << allsum;
}