鱼C论坛

 找回密码
 立即注册
查看: 970|回复: 13

[已解决]swicth的四则运算

[复制链接]
发表于 2021-9-11 15:19:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
帅哥美女们,如果想用switch完成四则运算怎么改
最佳答案
2021-9-11 16:23:52
基础不过关
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-09-11.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-11 15:48:21 | 显示全部楼层
default :后边没有break;把if判断语句里的break删掉,把break放在if else语句之外应该就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 15:54:38 | 显示全部楼层
而且你if判断的也有问题,应该是if(b==0)而不是0==b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-11 15:56:37 | 显示全部楼层
村里小黑 发表于 2021-9-11 15:48
default :后边没有break;把if判断语句里的break删掉,把break放在if else语句之外应该就可以了

不好使.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:05:38 | 显示全部楼层

你去函数快查看一下scanf函数怎么使用,你使用的有问题,获取值后没有写把值赋给那个变量,所以你switch的变量是空的,你现在应该是没报错但是没有打印出结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:23:52 | 显示全部楼层    本楼为最佳答案   
基础不过关
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;
} 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:24:24 | 显示全部楼层
村里小黑 发表于 2021-9-11 15:54
而且你if判断的也有问题,应该是if(b==0)而不是0==b

这样也是对的
你可以试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:37:43 | 显示全部楼层
大马强 发表于 2021-9-11 16:24
这样也是对的
你可以试试

是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:39:11 | 显示全部楼层
村里小黑 发表于 2021-9-11 16:37
是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛

我也是习惯像你那样写,但可以看到好多人用另一种写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:42:35 | 显示全部楼层
大马强 发表于 2021-9-11 16:39
我也是习惯像你那样写,但可以看到好多人用另一种写法

emmmmm
很别扭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:44:07 | 显示全部楼层

哈哈哈,确实
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-11 16:44:27 | 显示全部楼层
村里小黑 发表于 2021-9-11 16:37
是对的,但是正常习惯写法不是按我说的嘛?而且这不是应该是一个左值右值的问题嘛

这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 16:57:15 | 显示全部楼层
blayt 发表于 2021-9-11 16:44
这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值

确实,这样就能知道出错地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-11 17:00:49 | 显示全部楼层
blayt 发表于 2021-9-11 16:44
这样写可以避免少打一个=的问题,因为系统不允许你给一个常量赋值


牛啊牛啊,这么说确实有道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 07:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表