swicth的四则运算
帅哥美女们,如果想用switch完成四则运算怎么改 default :后边没有break;把if判断语句里的break删掉,把break放在if else语句之外应该就可以了而且你if判断的也有问题,应该是if(b==0)而不是0==b
村里小黑 发表于 2021-9-11 15:48
default :后边没有break;把if判断语句里的break删掉,把break放在if else语句之外应该就可以了
不好使..... blayt 发表于 2021-9-11 15:56
不好使.....
你去函数快查看一下scanf函数怎么使用,你使用的有问题,获取值后没有写把值赋给那个变量,所以你switch的变量是空的,你现在应该是没报错但是没有打印出结果 基础不过关
1.scanf语句没写对,漏了赋值对象
2,switch 语法有问题
#include <stdio.h>
int main()
{
float a,b;
char ch;
scanf("%f %c %f",&a,&ch,&b);
switch(ch)
{
case '+':
printf("%.2f", a + b);
break;
case '-':
printf("%.2f", a - b);
break;
case '*':
printf("%.2f", a * b);
break;
case '/':
if (0==b)
{
printf("输入不合法!");
break;
}
else
printf("%.2f", a / b);
default:
printf("输入不合法!");
break;
}
return 0;
} 村里小黑 发表于 2021-9-11 15:54
而且你if判断的也有问题,应该是if(b==0)而不是0==b
这样也是对的
你可以试试 大马强 发表于 2021-9-11 16:24
这样也是对的
你可以试试
是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛 村里小黑 发表于 2021-9-11 16:37
是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛
我也是习惯像你那样写,但可以看到好多人用另一种写法 大马强 发表于 2021-9-11 16:39
我也是习惯像你那样写,但可以看到好多人用另一种写法
emmmmm
很别扭 村里小黑 发表于 2021-9-11 16:42
emmmmm
很别扭
哈哈哈,确实 村里小黑 发表于 2021-9-11 16:37
是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛
这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值 blayt 发表于 2021-9-11 16:44
这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值
确实,这样就能知道出错地方{:10_297:} blayt 发表于 2021-9-11 16:44
这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值
{:5_106:}
牛啊牛啊,这么说确实有道理
页:
[1]