永发信息网

这个程序错在哪儿啊

答案:2  悬赏:30  手机版
解决时间 2021-05-08 12:00
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",&a,&b,&c);
printf("The equation");
if(fabs(a)<=1e-6)
printf("is not a quadratic\n");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal roots:%8.4f\n",-b/(2*a));
else
if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real roots:%8.4fand%8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("has complex roots: \n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
}
最佳答案

最简单的方法 就是把float 换成double不就行了


这个warnning就是说double类型的结果转换成float类型 可能会丢失精度

全部回答
没错,只不过sqrt这个函数操作的是double,返回的也是double,从double到float赋值可能会造成精度丢失,所以编译器给了你个警告,换用sqrff就没有了: #include<stdio.h> #include<math.h> void main() { float a,b,c,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if(fabs(a)<=1e-6) printf("is not a quadratic\n"); else { disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) { x1=(-b+sqrtf(disc))/(2*a); x2=(-b-sqrtf(disc))/(2*a); printf("has distinct real roots:%8.4fand%8.4f\n",x1,x2); } else { realpart=-b/(2*a); imagpart=sqrtf(-disc)/(2*a); printf("has complex roots: \n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英语翻译,除非他先道歉,否则我不道歉
平度市福馨老年公寓这个地址在什么地方,我要
成为优秀的人的诗句,优秀25字描写人物外貌的
中国农业商务网
江西单招大学有哪些,江西有什么好点的大学
人的意念有什么作用
农场封了之后,QQ其他功能能用吗?
张各庄二村我想知道这个在什么地方
DNF第八章生源
允捧村怎么去啊,有知道地址的么
QQ个人中心里有个好友给别人评论了日至我也能
qq三国40XS怎麼賺錢快?
最近哪些明星在横店,最近有哪些明星会来西安
林俊杰为什么不谈恋爱了
怎么样能留下你的情侣
推荐资讯
移动共享流量怎么使用,移动的流量共享是怎么
DNF传承装备会涨价还是会降价?
晋城附近哪有蹦极?
腾讯七夕活动的邮编怎样填啊
比如3K现在版本是5.05.=出完美了可以刷到完美
耳麦的声音怎么调大(一天一问)
给个~非主流名字!谢谢
大弯这个地址在什么地方,我要处理点事
开车有坏处吗?
关于迟缓写入失败的问题
谁有轩辕外传之云之遥游戏的下载地址? 还有它
昨晚梦见从山上呆一夜,还有人追。是怎么回事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?