浙江大学 简单计算器

难点在于空格和\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;
} 

猜你喜欢

转载自blog.csdn.net/qq_31674679/article/details/80203017