c语言用switch编写一个简单的四则运算程序

我的程序第一个case就错了?... 我的程序第一个case就错了? 展开
 我来答
娱乐小八卦啊a
高粉答主

2020-02-13 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117823

向TA提问 私信TA
展开全部

代码如下:

#include <stdio.h>

int  main()

{

    float fFloat1=.0,fFloat2=.0;

    char cOP=NULL;

    printf("请输入要进行四则运算表达式:\n");

    scanf("%f%c%f",&fFloat1,&cOP,&fFloat2);

    switch(cOP)

    {

    case '+':

        printf("%f+%f=%f\n",fFloat1,fFloat2,fFloat1+fFloat2);

        break;

    case '-':

        printf("%f-%f=%f\n",fFloat1,fFloat2,fFloat1-fFloat2);

        break;

    case '*':

        printf("%f*%f=%f\n",fFloat1,fFloat2,fFloat1*fFloat2);

        break;

    case '/':

        if(0!=fFloat2)

        {

            printf("%f/%f=%f\n",fFloat1,fFloat2,fFloat1/fFloat2);

        }

        else

        {

            printf("error!\n");

        }

        break;

    default:

        printf("error!\n");

        break;

    }

    return 0;

}

扩展资料

switch语句和if语句的区别:

1、大于等于(>=)、小于等于(<=)的判断用if语句,而等于(=)的判断用switch语句。

2、switch语句中的case类似于if…else…else if…else,但是离散值的判断。(离散值的判断自认为是等于情况的判断)。

3、switch一般都可以及用if重写,但是if不一定能用switch重写。

4、不要忘了break.C#中break不写是不行的,除了合并case的情况。

5、case 中的值必须是常量,不能是变量、表达式。

参考资料来源:

百度百科——Switch函数

986450042
2014-10-18 · TA获得超过1131个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:88.8万
展开全部
case 后面没有大括号,默认执行第一句代码
break、default也要加分号
追问
我的c定义的是字符表示运算符号,switch中case后面的default之后有大括号
按照您说的,我只用加分号就可以正确运行了,可是我还有一个问题,如何判断除法运算中的分母是否为0?
追答
不好意思之前的看错了,这个分母靠代码if直接判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
推荐于2017-10-09 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38375
国家科技进步奖

向TA提问 私信TA
展开全部
#include<stdio.h>
main()
{
float a,b,d;
unsigned char c;
printf("\n Input dat a:");
scanf("%f",&a);
printf("\n Input dat c:");
scanf("%c",&c);
printf("\n Input dat b:");
scanf("%f",&b);

switch(c)
{
case '+': d=a+b;printf("%fa%c%fb=%f\n");break;
case '-': d=a-b;printf("%fa%c%fb=%f\n");break;
case '*': d=a*b;printf("%fa%c%fb=%f\n");break;
case '/': d=a/b;printf("%fa%c%fb=%f\n");break;
default:printf("error");break;
}
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-18
展开全部
break后面要加分号
最后一个case后面也得有break
追问
谢谢,按照您说的,已经可以正确运行。
可是我还有一个问题,如何判断除法中的分母是否为0?
追答

在switch前面加上一个if语句来判断b是否为0

#include<stdio.h>
int main()
{
float a,b,d;
char c;
printf("请输入两个数");
scanf("%f",&a);
scanf("%c",&c);
scanf("%f",&b);
if(b==0)
printf("分母不能为0");
else
{
switch(c)
{
...
}
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式