C语言中关于double和float的问题!

有没有大佬能解释一下这里为什么定义成double运行就会出错,定义成float就又能正常运行了?代码如下:#include<stdio.h>intmain(){doubl... 有没有大佬能解释一下这里为什么定义成double运行就会出错,定义成float就又能正常运行了?代码如下:#include<stdio.h>int main(){ double a,b; char x; printf("请输入式子:"); scanf("%f%c%f",&a,&x,&b); switch(x) { case '+':printf("结果是:%.2f\n",a+b);break; case '-':printf("结果是:%.2f\n",a-b);break; case '*':printf("结果是:%.2f\n",a*b);break; case '/': if(b!=0) { printf("结果是:%.2f\n",a/b); }else { printf("很遗憾,除数不能为0!"); } break; default:printf("请输入正确的式子!"); } return 0; } 展开
 我来答
xiaoke746
游戏玩家

2020-06-15 · 非著名电竞玩家
知道小有建树答主
回答量:122
采纳率:81%
帮助的人:19万
展开全部
因为格式化输入scanf要求数据类型和输入格式对应,你只要把scanf里面的%f改为%lf,double就能正常使用了。
还有输出时候不管float和double,都用%f,因为C语言里面就是这么定义的,输出时候统一了,但是如果输出用%lf,大多数编译器也能正常输出。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式