永发信息网

解2次方程的程序,不知道哪里出问题了!

答案:2  悬赏:20  手机版
解决时间 2021-07-31 23:15

#include"math.h"
main()
{float a,b,c,dis,p,q,x1,x2;
printf("请输入方程系数a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
if(a==0&&b==0&&c==0)

printf("方程解为任意值!\n");
if(a==0&&b!=0)x1=x2=-c/b,
printf("x1=x2=%-6.2f\n",x1);
if(a!=0)p=-b/(2*a),dis=b*b-4*a*c;
{if(dis<0)printf("方程无解!\n");
else q=sqrt(dis)/(2*a),x1=p+q,x2=p-q,

printf("x1=%-6.2fx2=%-6.2f",x1,x2);}

}

当a,b,c值符合第二个if时,输出的结果中多了一段,如下;

请输入方程系数a,b,c:0,2,1

x1=x2=-0.50

x1=1.#J x2=-1.#J

这是什么原因啊,谢谢解释一下!

最佳答案
#include"math.h"
#include "stdio.h"
main()
{float a,b,c,dis,p,q,x1,x2;
printf("请输入方程系数a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
if(a==0&&b==0&&c==0)
printf("方程解为任意值!\n");
else if(a==0&&b!=0){
x1=x2=-c/b,
printf("x1=x2=%-6.2f\n",x1);
} else if(a!=0){
p=-b/(2*a),dis=b*b-4*a*c;
if(dis<0)printf("方程无解!\n");
else q=sqrt(dis)/(2*a),x1=p+q,x2=p-q,
printf("x1=%-6.2fx2=%-6.2f",x1,x2);
}
}

加个括号就行了,已测试通过
全部回答
if后面的语句 用;号隔开 并用{}括起来
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样减少使用WINSXS
木兰县哈尔滨木兰县公安局利东派出所地址在哪
QQ飞车里的点券和消费券能不能一起用阿?
诺基亚5320河南的报价多少,另手机配置有哪些
寻找一句名言
春哥传一共有多少段
天龙XY的新80技步步生花是拿来骗钱的吗
心在流泪怎么办?
我字开头的诗句九个字,求爱情的句子5个字开头
斗神坛接引道人
时间会不会冲淡记忆?
清丰县濮阳超越专业订做活动房地址有谁知道?
手机USB连接好了,但是不能传文件
高中时代最难忘的是什么?
福建宁德市哪里有福田汽车的服务站
推荐资讯
三国志11华夏风云剧本的下载地址
福清有地方买188开头的移动手机号吗?
双牌县永州青山酿这个地址怎么能查询到,着急
无法安装软件,提示可能处于安全模式,怎么办
江西上饶大学生创业有什么优惠
早上起来跑步是坏处还是好处呢?
做梦吓醒了的句子说说,晚上做梦被吓醒发说说
怎么获得女孩的心
QQ 空间抢车位问题哦!!!!!快来啊!
穆棱市牡丹江天顺食品商店地址在哪里啊
从上海松江区到宝山区大概到久
驾龄怎么算?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?