九度OnlineJudge-简单计算器(1019)代码,已AC

题目链接:http://ac.jobdu.com/problem.php?pid=1019

题目描述:
    读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入:
    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出:
    对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入:
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出:
3.00
13.36

AC代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    double a,b,sum;    
    char c;    //字符型变量c用来存储运算符号 
    
    while(1)
    {
           a=b=sum=0;  
           scanf("%lf",&a);       
           if(a==0)
           {
                   break;
           }
           while(1)
           { 
                scanf("%c",&c);
                if(c=='\n')
                {
                   break;
                }
                scanf("%c %lf",&c,&b);
                switch(c)
                {
                    case '+':      // 如果是+号,则sum=sum+a;然后将b赋值于a 
                         {
                             sum+=a;
                             a=b;
                             break;
                             
                         }
                    case '-':     //如果是-号,则可用sum与a加赋值于sum,将-b赋值给a 
                         {   
                             sum+=a;
                             a=-b;
                             break;
                         }
                    case '*':        //如果是*号,则先经行乘法运算,运算结果赋值与a 
                         {
                             a*=b;  
                             break;
                         }
                    case '/':       //如果是/号,则先经行除法运算,运算结果赋值与a 
                         {
                             a/=b;
                             break;
                         } 
                }
               
           }
           printf("%.2lf\n",sum+a);
           
    }
    return 0;
} 

你可能感兴趣的:(简单计算器,九度,九度OJ,1019,OnlieJudge)