一道关于C语言求一元二次方程根的问题

这是我输入的程序:#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;scanf(... 这是我输入的程序:
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("%1f,%1f,%1f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("real roots:\nx1=%10.6f\nx2=%10.6f\n",x1,x2);
}
return 0;
}
不管我输入的数字是什么,运行后总是说this equation hasn't real roots貌似系统总是默认为我的disc《0,这是为什么?求解答!
展开
 我来答
风林火陰山雷
2013-12-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:2569
采纳率:100%
帮助的人:1991万
展开全部

您好!很高兴为您解答。


如果刨除输入格式的问题,输入的那一行“scanf("%1f,%1f,%1f",&a,&b,&c);”应该改为“scanf("%lf,%lf,%lf",&a,&b,&c);”,即把“1f”改成“lf”。


修改后的运行结果:


望采纳~如您还有不解,欢迎追问~

Sievers分析仪
2025-01-06 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
百度网友72165e1
2013-12-07 · TA获得超过2170个赞
知道大有可为答主
回答量:1369
采纳率:100%
帮助的人:426万
展开全部
scanf的参数中,三个“%1f"中的f前应该是字母L的小写形式,改过来就成。另外梦幻子凝说得对,输入三个系数时要严格按照格式,每两个系数之间用逗号分隔开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瓜条文库
2013-12-07 · TA获得超过662个赞
知道小有建树答主
回答量:470
采纳率:75%
帮助的人:112万
展开全部
a,b,c的输入格式 三个数之间用逗号隔开
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式