ccfcsp201903-2 24点游戏,有大神能帮我看看我这个代码吗?总是只有70分

#include <iostream>
#include <stdlib.h>
#include<cmath>
#include<string>
using namespace std;
int num=0;
int sum=0;
int jianhua(string a,int i,int shu) {
    int temp;
    if(num==3) {
    } else {
        int j=1;
        while(j<=i) {
            if(shu) {
                if(a[j]=='x') {
                    temp=(a[j-1]-'0')*(a[j+1]-'0')+'0';
                    shu--;
                    break;
                } else if(a[j]=='/') {
                    temp=floor((a[j-1]-'0')/(a[j+1]-'0')+'0');
                    shu--;
                    break;
                } else;
            } else {
                if(a[j]=='+') {
                    temp=(a[j-1]-'0')+(a[j+1]-'0')+'0';
                    break;
                } else if(a[j]=='-') {
                    temp=(a[j-1]-'0')-(a[j+1]-'0')+'0';
                    break;
                }
            }
            j=j+2;
        }
        string b;
        i=i-2;
        for(int m=0; m<i; m++) {
            if(m<j-1) {
                b+=a[m];
            } else if(m>j-1) {
                b+=a[m+2];
            } else {
                b+=temp;
            }
        }
        num++;
        sum=temp;
        jianhua(b,i,shu);
    }
    return 0;
}
int main() {
    int n;
    cin>>n;
    int b[n];
    for(int i=0; i<n; i++) {
        sum=0;
        num=0;
        string a;
        cin>>a;
        int is=1;
        int j=0;
        while(is<=5) {
            if(a[is]=='x'||a[is]=='/') {
                j++;
            }
            is+=2;
        }
        jianhua(a,7,j);
        b[i]=sum-'0';
        cout << (b[i] == 24 ? "Yes" : "No") << endl;
    }
    return 0;
}

心累,一直是70分。。麻烦大佬了

运算时的变量要用浮点数