作业帮 > 综合 > 作业

C语言程序设计求方程的解:求ax2+bx+c=0方程的实根.a,b,c由键盘输入.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 17:45:40
C语言程序设计求方程的解:求ax2+bx+c=0方程的实根.a,b,c由键盘输入.
输入三个数a,b,c;输出方程的实根,如果方程有实根,则输出根;如果方程有2个不等实根,则分2行输出,第一行输出较大根,第二行输出较小根.
其余情况(如无实根等)则输出No
/*
求方程的解
*/
#include
#include
int main(void)
{
float a=0;
float b=0;
float c=0;
float d=0;
float x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0){
d=sqrt(d);
b=-b;
x1=(b+d)/(2*a);
x2=(b-d)/(2*a);
if(x1>x2){
printf("%f\n%f",x1,x2);
}
else printf("%f",x1);
}
else printf("No");
return 0;
}
这是我写的,为什么错了?
int main(void)
{
float a=0;
float b=0;
float c=0;
float d=0;
float x1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0) ///////////////这个地方,应该是 d>=0
{
d=sqrt(d);
b=-b;
x1=(b+d)/(2*a);
x2=(b-d)/(2*a);
if(x1>x2)
{
printf("%f\n%f",x1,x2);
}
else
printf("%f",x1);
}
else printf("No");
return 0;
}
再问: 额..不好意思.还是不对
再答: 你说的不对是什么不对,为何在我的电脑哦上是对的
再问: 我原来算也是对的.只是我是在学校的网站上做的.结果它老是说错T.T
再答: 在我电脑上是对的,你的问题就很有问题,让回答者很不明白你到底要问什么,还有,到底哪里不对,你知道吗?
再问: 就是不知道哪里错了,所以想知道我写的程序除了d>0外还有哪里错了,改过来之后学校网站的那个系统能通过
再答: int main(void) { float a=0; float b=0; float c=0; float d=0; float x1,x2; scanf("%f%f%f",&a,&b,&c); d=b*b-4*a*c; if(d>0) ///////////////这个地方,应该是 d>=0 { d=sqrt(d); b=-b; x1=(b+d)/(2*a); x2=(b-d)/(2*a); if(x1!= x2) //那在修改这个地方,因为当a < 0时,x1 就不一定大于x2了,你再试试 { printf("%f\n%f",x1,x2); } else printf("%f",x1); } else printf("No"); return 0; }