问题:【求方程ax2+bx+c=0的根,用三个函数分别求当b2-4acgt;0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值】
答案:↓↓↓ 齐敏的回答: 网友采纳 #include #include #include intJudge(doublea,doubleb,doublec) { doubleresult=b*b-4*a*c; if(result==0) return0; elseif(result>0) return1; else return-1; } voidComputeGreatThanZero(doublea,doubleb,doublec) { printf("x1=%gf,x2=%gf",(-b+sqrt(b*b-4*a*c))/(2*a),((-b-sqrt(b*b-4*a*c))/(2*a))); } voidComputeEqualZero(doublea,doubleb,doublec) { printf("x1=x2=%g",-b/(2*a)); } voidComputeBelowZero(doublea,doubleb,doublec) { doubledelta=sqrt(4*a*c-b*b); doubletemp=delta/(2*a); printf("x1=%g",-b/(2*a)); if(temp>0) printf("+%gi,",temp); else printf("-%gi,",fabs(temp)); printf("x2=%g",-b/(2*a)); if(delta>0) printf("-%gi",fabs(temp)); else printf("+%gi",fabs(temp)); } voidmain() { doublea,b,c; intflag; scanf("%lf%lf%lf",&a,&b,&c); if(a==0) { printf("na=0n"); exit(1); } flag=Judge(a,b,c); if(flag>0) ComputeGreatThanZero(a,b,c); elseif(flag==0) ComputeEqualZero(a,b,c); else ComputeBelowZero(a,b,c); } //zd_44.cpp:Definestheentrypointfortheconsoleapplication. // #include #include floatx1,x2,disc,p,q; greater_than_zero(floata,floatb) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(floata,floatb) { x1=x2=(-b)/(2*a); } smaller_than_zero(floata,floatb) { p=-b/(2*a); q=sqrt(abs(disc))/(2*a); } intmain(intargc,char*argv[]) { floata,b,c; printf("Inputa,b,c:"); scanf("%f,%f,%f",&a,&b,&c); printf("nequation:%5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("root:n"); if(disc>0) { greater_than_zero(a,b); printf("x1=%5.2ftx2=%5.2fnn",x1,x2); } elseif(disc==0) { equal_to_zero(a,b); printf("x1=%5.2ftx2=%5.2fnn",x1,x2); } else { smaller_than_zero(a,b); printf("x1=%5.2f+%5.2fitx2=%5.2f-%f5.2in",p,q,p,q); } printf("HelloWorld!n"); return0; } 运行结果: Inputa,b,c:7,4,3 equation:7.00*x*x+4.00*x+3.00=0 root: x1=-0.29+0.59ix2=-0.29-0.5890155.2i HelloWorld! Pressanykeytocontinue |