Go: package main

import (
	"bufio"
	"fmt"
	"go/token"
	"go/types"
	"os"
	"strconv"
	"strings"
)

func main() {
	stdin := bufio.NewScanner(os.Stdin)
	stdin.Scan()
	n, _ := strconv.Atoi(stdin.Text())
	for i := 0; i < n; i++ {
		stdin.Scan()
		exp := strings.TrimRight(stdin.Text(), "=")
		res, _ := types.Eval(token.NewFileSet(), nil, token.NoPos, exp)
		fmt.Println(res.Value)
	}
}

C++: #include <iostream>
#include <string>
using namespace std;

int atoi(string s);
int calc(string in);

int main(){
    int n;cin>>n;
    for(int lop=0; lop<n; lop++){
        string in;cin>>in;
        cout<<calc(in.substr(0,in.size()-1))<<endl;
    }
}

int calc(string in){
    //cout<<in<<endl;
    bool f=true;
    for(int i=1; i<in.size();i++){
        if(in[i]<'0'||'9'<in[i]){
            f=false;
            break;
        }
    }
    if(f){
        if(in[0]=='-')
            return -atoi(in.substr(1,in.size()-1));
        if(in[0]=='+')
            return atoi(in.substr(1,in.size()-1));
        return atoi(in);
    }
    for(int i=0; i<in.size(); i++){
        if(in[i]=='+'||in[i]=='-'||in[i]=='('||in[i]==')'){
            f=true;
            break;
        }
    }
    if(!f){
        int num=1,start=0;
        // if op * , else /
        bool op=true;
        for(int i=0; i<in.size(); i++){
            if(in[i]=='*'||in[i]=='/'){
                if(op)
                    num*=atoi(in.substr(start,i-start));
                else
                    num/=atoi(in.substr(start,i-start));
                start=i+1;
                if(in[i]=='*')
                    op=true;
                else
                    op=false;
            }
            if(i==in.size()-1){
                if(op)
                    num*=atoi(in.substr(start,1+i-start));
                else
                    num/=atoi(in.substr(start,1+i-start));
                break;
            }
        }
        return num;
    }
    for(int i=0; i<in.size(); i++){
        if(in[i]=='('||in[i]==')'){
            f=false;
            break;
        }
    }
    if(f){
        int start=0,num=0;
        // if op + , else - 
        bool op=true;
        for(int i=0; i<in.size(); i++){
            if(in[i]=='+'||in[i]=='-'){
                if (op)
                    num+=calc(in.substr(start,i-start));
                else
                    num-=calc(in.substr(start,i-start));
                start=i+1;
                if(in[i]=='+')
                    op=true;
                else
                    op=false;
            }
            if(i==in.size()-1){
                if(op)
                    num+=calc(in.substr(start,1+i-start));
                else
                    num-=calc(in.substr(start,1+i-start));
                break;
            }
        }
        return num;
    }
    //cout<<in<<endl;
    if(in[0]!='('||in[in.size()-1]!=')')
        f=true;
    if(!f){
        for(int i=1; i<in.size()-1; i++){
            if(in[i]=='('){
                f=true;
                break;
            }
        }
        if(!f)
            return calc(in.substr(1,in.size()-2));
    }
    int level=0;
    for(int i=0; i<in.size(); i++){
        if(in[i]=='('){
            level++;
            continue;
        }
        if(in[i]==')'){
            level--;
            continue;
        }
        if(level==0&&(in[i]=='+'||in[i]=='-'))
            f=false;
    }
    if(f){
        //cout<<in<<endl;
        level=0;
        int start=0;
        int num=1;
        bool op=true;
        for(int i=0; i<in.size(); i++){
            if(i==in.size()-1){
                if(op)
                    num*=calc(in.substr(start,1+i-start));
                else
                    num/=calc(in.substr(start,1+i-start));
            }
            if(in[i]=='('){
                level++;
                continue;
            }
            if(in[i]==')'){
                level--;
                continue;
            }
            if(level==0&&(in[i]=='*'||in[i]=='/')){
                if(op)
                    num*=calc(in.substr(start,i-start));
                else
                    num/=calc(in.substr(start,i-start));
                start=i+1;
                if(in[i]=='*')
                    op=true;
                else
                    op=false;
            }
        }
        return num;
    }    
    int start=0,num=0;
    level=0;
    bool op=true;
    for(int i=0; i<in.size(); i++){
        if(i==in.size()-1){
            if(op)
                num+=calc(in.substr(start,1+i-start));
            else
                num-=calc(in.substr(start,1+i-start));
        }
        if(in[i]=='('){
            level++;
            continue;
        }
        if(in[i]==')'){
            level--;
            continue;
        }
        if(level==0&&(in[i]=='+'||in[i]=='-')){
            if(op)
                num+=calc(in.substr(start,i-start));
            else
                num-=calc(in.substr(start,i-start));
            start=i+1;
            if(in[i]=='+')
                op=true;
            else
                op=false;
        }
    }
    return num;
}

int atoi(string s){
    int n=0;
    for(int i=0; i<s.size(); i++){
        n=n*10+s[i]-'0';
    }
    return n;
}

C++: #include "bits/stdc++.h"
#define int long long
#define range(i, a, b) for(int i = a; i < b; i++)
#define rep(i, a) range(i, 0, a)
#define all(a) (a).begin(),(a).end()
using namespace std;
const int MOD = 1e9 + 7, INF = 1e17;
using vi = vector <int>;
using vvi = vector <vi>;
//g++ -std==c++14


int expr(const char **);
int term(const char **);
int factor(const char **);
int number(const char **);

int expr(const char **p) {
  int val = term(p);
  while (1) {
    if (**p == '+') {
      (*p)++;
      val += term(p);
    } else if (**p == '-') {
      (*p)++;
      val -= term(p);
    } else {
      break;
    }
  }
  return val;
}

int term(const char **p) {
  int val = factor(p);
  while (1) {
    if (**p == '*') {
      (*p)++;
      val *= factor(p);
    } else if (**p == '/') {
      (*p)++;
      val /= factor(p);
    } else {
      break;
    }
  }
  return val;
}

int factor(const char **p) {
  if (**p == '(') {
    (*p)++;
    int val = expr(p);
    (*p)++;
    return val;
  }
  return number(p);
}

int number(const char **p) {
  int val = 0;
  while ('0' <= **p && **p <= '9') {
    val = val * 10 + **p - '0';
    (*p)++;
  }
  return val;
}

int main() {
  int n;
  scanf("%d", &n);
  char s[101];
  while (n--) {
    scanf("%s", s);
    const char *p = s;
    printf("%d\n", expr(&p));
  }
}