scanf("%f,%f,%f",&a,&b,&c);出错,求大神

#include<stdio.h>#include<math.h>#include<iostream>intmain(){doublea,b,c,s,area;print... #include<stdio.h>
#include<math.h>
#include<iostream>
int main()
{
double a,b,c,s,area;
printf("请按照a,b,c的格式输入三角形的三边长:\n");
scanf("%f,%f,%f",&a,&b,&c);
/*a=3.67;b=6.21;c=5.43;*/
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",area);
system("pause");
return 0;
}
按scanf函数调用语句输入数据一直出错,但是用注释里给定数据就不会出错,什么情况?求大神解释。用的编译系统是VS 2008
原来是输入实数类型错了,定义的double型,输入的float型,我把输入指令改为
scanf("%lf%lf%lf",&a,&b,&c);就可以正常运行了。
不过我定义的area也是double型,却可以以float型正常输出,这又是怎么回事?
求大神解答。还有回答我的这位大兄弟,成功把我带歪了,不过谢谢你的回答。不知道什么情况VS 2008加逗号没事。
展开
 我来答
貌似風輕
2016-08-30 · TA获得超过7280个赞
知道大有可为答主
回答量:1672
采纳率:94%
帮助的人:690万
展开全部

运行是没问题的

百度百科:

scanf()函数中没有精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

我试了下你的%5.5f(输入会出错)

可能是你的其他代码问题

wowokakada
2016-08-29 · TA获得超过749个赞
知道答主
回答量:92
采纳率:0%
帮助的人:35万
展开全部
改为:
scanf("%f%f%f",&a,&b,&c);

原因:
基础不扎实,scanf指定数据格式时不加逗号。
更多追问追答
追问

其实我试过不加逗号的形式,一样错误。

就这条代码错误,不知道错在哪。

追答
额!好吧,其实我也是百度scanf的用法的,C多少年不用了。还有调程序必须看编译器报错,我相信你这样的错误编译器肯定有提示的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式