难点在于空格和\n的读入,调了半天才解决
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int flag;
double start,temp,num[200];
char sign;
while(scanf("%lf%c",&start,&sign)!=EOF){
flag=0;
memset(num,0,sizeof(num));
if(sign=='\n'){
if(start!=0){
printf("%.2f\n",start);
continue;
}
else break;
}
num[flag]=start;
while(scanf("%c %lf",&sign,&start)!=EOF){
switch(sign){
case '+':num[++flag]=start;break;
case '-':num[++flag]=-start;break;
case '*':num[flag]*=start;break;
case '/':num[flag]/=start; break;
}
if(getchar()=='\n')break;
}
double ans=0;
for(int i=0;i<=flag;i++)
ans+=num[i];
printf("%.2f\n",ans);
}
return 0;
}