南阳 305 表达式求值

来源:互联网 发布:淘宝app怎么看评价 编辑:程序博客网 时间:2024/05/16 17:47
#include<stdio.h>#include<string.h>int count(int a,int b,char c){ if(c=='d') return a+b; if(c=='i') return a<b?a:b; if(c=='a') return a>b?a:b;}int main(){ char s[310],a[310]; int n,m,b[310],i,atop,btop,num; scanf("%d",&n); while(n--) {  memset(a,0,sizeof(a));  memset(b,0,sizeof(b));  //memset(s,0,sizeof(s));//对于字符串,清不清0都无所谓  scanf("%s",s);  m=strlen(s);  atop=btop=1;  for(i=0;i<m;)  {   if(s[i]>='a'&&s[i]<='z'){    i++;    if(s[i]=='d') a[atop++]='d';    if(s[i]=='a') a[atop++]='a';    if(s[i]=='i') a[atop++]='i';    i+=2;   }   else if(s[i]=='('||s[i]==',') i++;   else if(s[i]>='0'&&s[i]<='9')   {    num=0;    while(s[i]>='0'&&s[i]<='9')    {     num=num*10+s[i]-'0';     i++;    }    b[btop++]=num;   }   if(s[i]==')')   {   num=count(b[--btop],b[--btop],a[--atop]);   b[btop++]=num;//这样写是b[btop++]=count(b[--btop],b[--btop],a[--atop]);   i++;   }  }  printf("%d\n",b[1]); } return 0;}

0 0
原创粉丝点击