龙姑娘  

Description

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
 

Input

测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
 

Output

对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
 

Sample Input

1 + 2 4 + 2 * 5 - 7 / 11 0
 

Sample Output

3.00 13.36
 
 
 
 
解题思想:
  利用数组与switch语句,先读入一个数字再读入一个符号,根据读入的符号选择不同的语句,最后把所有的数累加输出。
 
 
 
代码如下:
  

#include <stdio.h>

int main()

{
    int shu,i=0,m,flag,j;
    double a[410],sum=0;
    char fh;

   // for(int j=0;j<200;j++)
   while (1)
    {
        flag=0;

         i=0;
         for(j=0;j<410;j++)
         a[i]=0;
          scanf("%lf",&a[0]);

        while (getchar()!='\n')
    {
        sum=0;
        flag=1;
        scanf("%c %d",&fh,&m);
        switch (fh)
        {
            case '+':a[++i]=m; break;
            case '-': a[++i]=-m;break;
            case '*':a[i]=a[i]*m;break;
            case '/':a[i]=a[i]/m*1.0;break;
        }

        }
        if(!flag) break;
        for( j=0;j<=i;j++)
        sum+=a[j];

        printf ("%.2lf\n",sum);

    }
    return 0;

}

posted on 2016-07-17 18:35  龙姑娘  阅读(196)  评论(0)    收藏  举报