#include<stdio.h>
#include<deque>
using namespace std;
int Is(char x,char y);
char a[150];
int main()
{
int n;
int i,j,k;
scanf("%d",&n);
while(n--)
{
deque<char>pa,pi;
pa.push_front('=');
scanf("%s",a);
for(i=0;a[i]!=0;)
{
if(a[i]>='0'&&a[i]<='9')
pi.push_front(a[i++]);
else
{
k=Is(pa.front(),a[i]);
if(k==1)
{
int x,y;
x=pi.front()-'0';
pi.pop_front();
y=pi.front()-'0';
if(pa.front()=='+')
x=x+y;
if(pa.front()=='-')
x=y-x;
if(pa.front()=='*')
x=y*x;
if(pa.front()=='/')
x=y/x;
//printf("%c\n",pa.front());
pa.pop_front();
pi.front()=x+'0';
}
else
if(k==-1)
pa.push_front(a[i++]);
else
{
pa.pop_front();
if(pa.empty())
break;
}
}
}
printf("%d\n",pi.front()-'0');
}
return 0;
}
int Is(char x,char y)
{
if(x=='+'&&y=='+')
return 1;
if(x=='+'&&y=='-')
return 1;
if(x=='+'&&y=='/')
return -1;
if(x=='+'&&y=='*')
return -1;
if(x=='+'&&y=='(')
return -1;
if(x=='+'&&y==')')
return 1;
if(x=='-'&&y=='+')
return 1;
if(x=='-'&&y=='-')
return 1;
if(x=='-'&&y=='/')
return -1;
if(x=='-'&&y=='*')
return -1;
if(x=='-'&&y=='(')
return -1;
if(x=='-'&&y==')')
return 1;
if(x=='*'&&y=='+')
return 1;
if(x=='*'&&y=='-')
return 1;
if(x=='*'&&y=='/')
return 1;
if(x=='*'&&y=='*')
return 1;
if(x=='*'&&y=='(')
return -1;
if(x=='*'&&y==')')
return 1;
if(x=='/'&&y=='+')
return 1;
if(x=='/'&&y=='-')
return 1;
if(x=='/'&&y=='/')
return 1;
if(x=='/'&&y=='*')
return 1;
if(x=='/'&&y=='(')
return -1;
if(x=='/'&&y==')')
return 1;
if(x=='('&&y=='+')
return -1;
if(x=='('&&y=='-')
return -1;
if(x=='('&&y=='/')
return -1;
if(x=='('&&y=='*')
return -1;
if(x=='('&&y=='(')
return -1;
if(x=='('&&y==')')
return 0;
if(x==')'&&y=='+')
return 1;
if(x==')'&&y=='-')
return 1;
if(x==')'&&y=='/')
return 1;
if(x==')'&&y=='*')
return 1;
if(x==')'&&y=='(')
return 1;
if(x==')'&&y==')')
return 1;
if(x=='='&&y=='=')
return 0;
if(x=='='&&y!='=')
return -1;
if(x!='='&&y=='=')
return 1;
}
练手
原创mb64e477779bdae ©著作权
©著作权归作者所有:来自51CTO博客作者mb64e477779bdae的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java练手
虽然不咋地!看看,练练!陶冶情操。
java Java