任务描述
用switch
语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的算数运算符为加(+
)、减(-
)、乘(*
)、除(/
)。
要求: (1) 操作数是实型数。 (2) 要求输入的算数表达式中操作数和运算符之间可以加入任意多个空白符。 (3) 乘法的操作符除了符号*
之外,还可以是x
与X
作为乘号。
测试说明
我会对你编写的代码进行测试:
其中: 黑色字体为输出内容; 红色字体为输入内容; 所有标点符号均为英文标点。
#include <stdio.h>
#include <math.h>
#define EPS 1e-7
int main()
{
float data1, data2;
char op;
/*********begin**********/
printf("Please enter the expression:");
scanf("%f %c %f",&data1,&op,&data2);
switch(op){
case '+':printf(" %f + %f = %f",data1,data2,data1+data2);break;
case '-':printf(" %f - %f = %f",data1,data2,data1-data2);break;
case '*':printf(" %f * %f = %f",data1,data2,data1*data2);break;
case 'x':printf(" %f * %f = %f",data1,data2,data1*data2);break;
case 'X':printf(" %f * %f = %f",data1,data2,data1*data2);break;
case '/':{
if(data2<=EPS)
printf(" Division by zero!");
else
printf(" %f / %f = %f",data1,data2,data1/data2);break;
}
default:printf(" Unknown operator!");
}
/**********end***********/
return 0;
}