注册 登录
编程论坛 C语言论坛

小白求各位大佬改正一下我这个求根的程序

duanbj9919 发布于 2020-03-26 15:03, 3014 次点击
无论abc输什么,结果都是,
有两个不等实根
x1=0,x2=-92559.....................................


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main( )
{double a,b,c,x1,x2,det,i;
scanf("%lf,%lf ,%lf" ,&a,&b,&c);
det=b*b-4*a*c;
if(a==0)
{printf("该方程不是二次方程!");
}
else if(det>0)
{
    x1=(-b+sqrt(det))/(2*a),x2=(-b-sqrt(det))/(2*a);
    printf("有两个不等实根:\n x1=%lf x2=%lf");
}
else if(det==0)
{
    x1=x2=-b/(2*a);
    printf("有两个相等实根:\n x1=x2=%lf");
}
else if(det<0)
{
    x1=(-b+(sqrt(det))*i)/(2*a),x2=(-b- (sqrt(det))*i)/(2*a);
    printf("有两个共轭复根:\n x1=%lf x2=%lf");
}
}
13 回复
#2
rjsp2020-03-26 15:08
你先重新编译一下,看看编译器报哪些错
#3
return_02020-03-26 15:11
调试一下,输出他们的值,看一看
#4
duanbj99192020-03-26 15:12
回复 2楼 rjsp
0error,0warning了已经,
#5
duanbj99192020-03-26 15:19
回复 3楼 return_0
已经试过好多次了,一样
#6
duanbj99192020-03-26 15:20
回复 5楼 return_0
这个是作业,网上也有直接的,我想自己写一写,这样才知道自己的错
#7
return_02020-03-26 15:22
加油
#8
duanbj99192020-03-26 15:30
回复 8楼 return_0
哥,要不您帮我调一调
#9
duanbj99192020-03-26 15:40
回复 2楼 rjsp
哥,您亲自操作下,帮我试试
#10
return_02020-03-26 15:42
这道题是什么
#11
return_02020-03-26 15:45
程序代码:

#include<stdio.h>
#include<math.h>
int main()
{
double x1,x2,,a,b,c
double deta;
scanf("%lf,%lf,%lf",&a,&b,&c);
deta=b*b-4*a*c;
if(deta<0)
{
    printf("该方程不是二次方程!");
}
else
{
    x1=(-b+sqrt(deta))/(2*a);
    x2=(-b-sqrt(deta))/(2*a);
    printf("x1=%f,x2=%f",x1,c2);
}
}
return 0;
}
#12
return_02020-03-26 15:45
我随手写了一个
#13
duanbj99192020-03-26 16:29
回复 10楼 return_0
-元二次方程ax^2+bx+c=0的解有以下几种可能:
①系数a=0时,该方程不是二次方程。
②判别式b^2-4ac=0时,有两个相等实根。
③判别式b^2-4ac>0时,有两个不等实根。
④判别式b^2-4ac<0时,有两个共轭复根。
请编程判断其根类型,并求出具体的解的值。
要求:
①输入为: -0.00000001, 1, 0.6
输出为:该访程不是2次方程!
②输入为: 1,2, 1
输出为:该访程有两个相等实根:
x1=x2=-1.00
③输入为: 1,3, 1
输出为:该访程有两个不相等实根:
x1=-0.38
x2=-2.62
④输入为: 1,3, 4
输出为:该访程有两个共轭复根:
x1=-1.50+1.32 i
x2=-1.50-1.32 i
#14
duanbj99192020-03-26 17:35
我懂了,感谢各位大佬
1