#include
double jjcc(double st[], int k)
{
int j;
int y;
int n;
double sum=st[0];
int m;
for(j=1; j
{
if(st[j]=='*'||st[j]=='/')
{
if(st[j]=='*')
{
st[j-1]=st[j-1]*st[j+1];
}
else
{
st[j-1]=st[j-1]/st[j+1];
}
y=j;
n=0;
while(n
{
st[y]=st[y+2];
y++;
n++;
}
k=k-2;
j--;
}
}
for(m=1;m
{
if(st[m]=='+')
{
sum=sum+st[m+1];
}
else if(st[m]=='-')
{
sum=sum-st[m+1];
}
}
return sum;
}
void main()
{
int sum1=0;
int i, c=0;
char st1[200];
double st2[100],k,sum2;
printf("请输入算式(最后以'='结束):\n");
gets(st1);
for(i=0;st1[i]!='=';)
{
sum2=0,k=1;
if(st1[i]>47&&st1[i]<58)
{
sum1=(st1[i]-48)+sum1*10;
i++;
if(st1[i]=='.')
{
i++;
while(st1[i]>47&&st1[i]<58)
{
k=k*0.1;
sum2=(st1[i]-48)*k+sum2;
i++;
}
}
st2[c]=sum1+sum2;
}
else
{
st2[++c]=st1[i];
i++;
sum1=0;
c++;
}
}
printf("%.4f\n",jjcc(st2,c+1));
}