编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:
        操作数1    运算符op    操作数2
然后,计算并输出表达式的值
指定的运算符为:
    加(+)
    减(-)
    乘(*)
    除(/)

代码如下,所给程序是否存在错误,若有,找出错误所在并改正。
#include 
int main()
{
         float    data1, data2;            
         char   op;
         printf("Please enter the expression:");
         scanf("%f  %c%f", &data1, &op, &data2); /* %c前有一个空格 */ 
         switch (op) 
         {
                   case '+':
                            printf("%f + %f = %f\n", data1, data2, data1 + data2); 
                            break;
                   case '-':
                            printf("%f - %f = %f\n", data1, data2, data1 - data2);
                            break;
                   case '*':
                            printf("%f * %f = %f\n", data1, data2, data1 * data2); 
                            break;
                   case '/':
                            printf("%f/%f = %f\n", data1, data2,data1/data2); 
                            break;
                   default: 
                            printf("Invalid operator!\n");
         }
        return 0;
}

A、第20行语句有错误,改成:
if (fabs(data2)<=EPS) printf("Division by zero!\n");
else  printf("%f/%f = %f\n", data1, data2, data1/data2);
同时,第1行语句下方应加入
#include  
#define   EPS 1e-6
B、default分支缺少break语句
C、没有错误
D、第20行语句有错误,改成:
if (data2=0) printf("Division by zero!\n");
else  printf("%f/%f = %f\n", data1, data2, data1/data2);