C语言中制作一个计算器用加法switch,c语言switch实现加减乘除

本文详细解释了如何在C程序中处理scanf遇到回车符的问题,通过加入getchar()移除多余输入,确保正确解析字符输入。通过实例展示了在switch语句中加上break的重要性,以避免意外的输入干扰。
摘要由CSDN通过智能技术生成

满意答案

00e27ab806e4881f8254fe7ae8741834.png

mmtxu

2013.09.06

00e27ab806e4881f8254fe7ae8741834.png

采纳率:55%    等级:11

已帮助:7465人

直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;

原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为

回车符不是数字形式的。

以下是我改过的程序,编译运行都很好的

#include

#include

void main()

{

float a,b;

char c;

printf("\n input a:");

scanf("%f",&a);

printf("\n input b:");

scanf("%f",&b);

//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。

//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了

//所以加上下面一行,把回车符取走就可以了。。。。

getchar();

printf("\n input c:");

scanf("%c",&c);

//printf("\n%c",c);

switch(c)

{

case '+': printf("a+b=%f",a+b);break;

case '-': printf("a-b=%f",a-b);break;

case '*': printf("a*b=%f",a*b);break;

case '/': printf("a/b=%f",a/b);break;

default: break;

}

//为了好看

printf("\n");

}

10分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值