读入op前要加&符,case结束要break
#include<stdio.h>
int main()
{
int a=10;
int b=20;
float c;
char op;
scanf("%c",&op);
switch(op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=(float)a*b;break;
case '/':c=(float)a/b;break;
}
printf("c=%f\n",c);
return 0;
}
补充:如果要算除法,int要强制转换成float,否则输出0,不会是0.5
感谢,题中的问题解决了,但是我后面还有一个问题,帮帮忙,十分感谢
@Hoxie: 不要在里面return啊!那样直接结束程序。
最前面的题中用了return,可以运行呀,后面的我把return删掉了,但是结果还会出错
@Hoxie: What?你看一下我前面的回答
@蒟蒻魔芋汤: 看到了,我后面定义的都是浮点型变量啊
@Hoxie: 为什么要getchar()
@蒟蒻魔芋汤: 这个不是要吃掉回车吗?要不然程序会直接跳过运算符的输入,直接把\n当作op了
@Hoxie: scanf不会吧(我c++党,不行就找别人吧,对不起)
@蒟蒻魔芋汤: 啊,这样啊,那谢谢你呀,为你打CALL哦
@Hoxie: 不用谢!
没有写break
加了break后会有结果,但是结果总是0.00000
没有结束,造成了穿透,写上break就可以了