C语言求一元二次方程的根能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?#include#includemain(){\x09double a,b,c,x1,x2,data;\x09scanf("%lf %lf %lf",&a,&b,&c);\x09if(a==0)return 0;\x09else

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 09:39:29
C语言求一元二次方程的根能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?#include#includemain(){\x09double a,b,c,x1,x2,data;\x09scanf(

C语言求一元二次方程的根能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?#include#includemain(){\x09double a,b,c,x1,x2,data;\x09scanf("%lf %lf %lf",&a,&b,&c);\x09if(a==0)return 0;\x09else
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}
}

C语言求一元二次方程的根能够执行,但程序判定只能得8分(满10分才算过),求大神指点我哪里不够严谨?#include#includemain(){\x09double a,b,c,x1,x2,data;\x09scanf("%lf %lf %lf",&a,&b,&c);\x09if(a==0)return 0;\x09else
double类型的不能直接用==0来判断,用fabs(a)