#include<stdio.h>
#include<string.h>
#define N 400
int main()
{
double a[N],ss,d[N];
char c[N],str[N+20],s[N];
int i,j,k,t,q,p;
while(gets(str),strcmp(str,"0")!=0)
{
memset(a,0,sizeof(a));
memset(c,0,sizeof(c));
k=0;j=0;
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/')
s[j++]=str[i];
else if(str[i]>='0'&&str[i]<='9')
{
if(str[i+1]==' '||str[i+1]=='\0')
a[k++]=str[i]-'0';
else
{
ss=0;
while(str[i+1]!=' '&&str[i+1]!='\0')
{
ss=ss*10+str[i]-'0';
i++;
}
ss=ss*10+str[i]-'0';
a[k++]=ss;
}
}
}
s[j]='\0';
q=0;p=1;
for(i=0;i<k;i++)
{
if((s[i]=='+'||s[i]=='-')&&s[i]!='\0')
{
c[p++]=s[i];
d[q++]=a[i];
}
else if((s[i]=='*'||s[i]=='/')&&s[i]!='\0')
{
while((s[i]=='*'||s[i]=='/')&&s[i]!='\0')
{
if(s[i]=='*')
a[i+1]=a[i]*a[i+1];
else
a[i+1]=a[i]/a[i+1];
i++;
}
c[p++]=s[i];
d[q++]=a[i];
}
else if(s[i]=='\0')
d[q++]=a[i];
}
ss=d[0];
for(i=1;i<q;i++)
{
if(c[i]=='+')
ss=ss+d[i];
else
ss=ss-d[i];
}
printf("%.2lf\n",ss);
}
return 0;
}
hdu1237
最新推荐文章于 2020-03-07 10:30:00 发布