C语言求一元二次方程的根
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/28 12:21:00
C语言求一元二次方程的根
能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?
#include
#include
main(){
\x09double a,b,c,x1,x2,data;
\x09scanf("%lf %lf %lf",&a,&b,&c);
\x09if(a==0)return 0;
\x09else {
\x09data=(b*b)-(4*a*c);
\x09if(data==0){
\x09\x09x1=-b/(2*a);
\x09\x09printf("x1=x2=%.5lf",x1);
\x09}
\x09else if(data>0){
\x09 x1=(-b+sqrt(data))/(2*a);
\x09 x2=(-b-sqrt(data))/(2*a);
\x09\x09printf("x1=%.5lf;x2=%.5lf",x1,x2);
\x09}
\x09else printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi",-b/(2*a),sqrt(-data)/(2*a),-b/(2*a),sqrt(-data)/(2*a));
\x09}
}
能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?
#include
#include
main(){
\x09double a,b,c,x1,x2,data;
\x09scanf("%lf %lf %lf",&a,&b,&c);
\x09if(a==0)return 0;
\x09else {
\x09data=(b*b)-(4*a*c);
\x09if(data==0){
\x09\x09x1=-b/(2*a);
\x09\x09printf("x1=x2=%.5lf",x1);
\x09}
\x09else if(data>0){
\x09 x1=(-b+sqrt(data))/(2*a);
\x09 x2=(-b-sqrt(data))/(2*a);
\x09\x09printf("x1=%.5lf;x2=%.5lf",x1,x2);
\x09}
\x09else printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi",-b/(2*a),sqrt(-data)/(2*a),-b/(2*a),sqrt(-data)/(2*a));
\x09}
}
![C语言求一元二次方程的根](/uploads/image/z/7211271-39-1.jpg?t=C%E8%AF%AD%E8%A8%80%E6%B1%82%E4%B8%80%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%E7%9A%84%E6%A0%B9)
double类型的不能直接用==0来判断,用fabs(a)