nyoj-305-表达式求值
2013-08-08 20:36
393 查看
#include<stdio.h>
#include<string.h>
char a[310];
int b[310],c[310];
int bijiao(int a,int b,char c)
{
if(c=='a')
return a>b?a:b;
else if(c=='i')
return a<b?a:b;
else if(c=='d')
return a+b;
}
int main()
{
int s;
scanf("%d",&s);
while(s--)
{
int le,n,i,j,b1,c1;
scanf("%s",a);
le=strlen(a);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
b1=c1=1;
for(i=0;i<le;)
{
if(a[i]=='a'||a[i]=='m')
{
i++;
if(a[i]=='a')
b[b1++]='a';
else if(a[i]=='d')
b[b1++]='d';
else if(a[i]=='i')
b[b1++]='i';
i+=2;
}
else if(a[i]=='('||a[i]==',')
i++;
else if(a[i]>='0'&&a[i]<='9')
{
n=0;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+(a[i]-48);
i++;
}
c[c1++]=n;
}
else if(a[i]==')')
{
n=bijiao(c[--c1],c[--c1],b[--b1]);
c[c1++]=n;
i++;
}
}
printf("%d\n",c[--c1]);
}
return 0;
}
#include<string.h>
char a[310];
int b[310],c[310];
int bijiao(int a,int b,char c)
{
if(c=='a')
return a>b?a:b;
else if(c=='i')
return a<b?a:b;
else if(c=='d')
return a+b;
}
int main()
{
int s;
scanf("%d",&s);
while(s--)
{
int le,n,i,j,b1,c1;
scanf("%s",a);
le=strlen(a);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
b1=c1=1;
for(i=0;i<le;)
{
if(a[i]=='a'||a[i]=='m')
{
i++;
if(a[i]=='a')
b[b1++]='a';
else if(a[i]=='d')
b[b1++]='d';
else if(a[i]=='i')
b[b1++]='i';
i+=2;
}
else if(a[i]=='('||a[i]==',')
i++;
else if(a[i]>='0'&&a[i]<='9')
{
n=0;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+(a[i]-48);
i++;
}
c[c1++]=n;
}
else if(a[i]==')')
{
n=bijiao(c[--c1],c[--c1],b[--b1]);
c[c1++]=n;
i++;
}
}
printf("%d\n",c[--c1]);
}
return 0;
}
相关文章推荐
- NYOJ-305 表达式求值(模拟)
- nyoj305 表达式求值
- NYOJ 305-表达式求值【模拟】
- 表达式求值(nyoj305)
- nyoj 305 表达式求值
- NYOJ-305 表达式求值【栈】
- NYOJ305_表达式求值
- NYOJ305 表达式求值(递归or栈)
- NYOJ 305 表达式求值(递归)
- nyoj305表达式求值(数据结构---栈)
- nyoj 305 表达式求值 (栈实现)
- NYOJ 305 表达式求值
- nyoj 题目305 表达式求值
- NYOJ-305-表达式求值
- NYOJ 305 表达式求值
- nyoj 305 表达式求值
- 表达式求值(nyoj305)
- nyoj305表达式求值(第四届河南省程序设计大赛)
- nyoj 305 表达式求值
- NYOJ305表达式求值