#include
int main( )
{
float a,b,c;
char op;
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case'+':c=a+b;
case'-':c=a-b;
case'*':c=a*b;
case'/':c=a/b;
default:printf("error");
}
printf("result=%f",c);
return 0;
}
switch case 语句没有加break呀,所以每次都会输出error和a/b
你的switch语句运用错误了,你的这个代码的功能是用来做四则运算的,每条case的语句后面都得加上break;运行出来了。
switch内的语句是按顺序依次执行的,如果没有break;语句来中断switch,它会从切入的case OP:语句起,执行至switch结束,修改方法,在每个case语句下方添加break;即可(带分号)
您的程序 我稍加修改(switch的每一个情况后 加了break; 另外用了循环方便快速测试程序) 用手机编译器运行了一下,
基本运算还是正确的 一个正数除以零等于无穷大(inf)