这个题真的是太诡异啦!改了一上午,才到90分!超级气哼╭(╯^╰)╮
先不管了贴上90分代码,100分代码等我调出来再说!
一点问题都没有嘛!!!!!!!!!
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int main() { double a,b,c,x1,x2; scanf("%lf%lf%lf",&a,&b,&c); if(b*b>4*a*c) { x1=(0-b+sqrt(b*b-4*a*c))/(2*a); x2=(0-b-sqrt(b*b-4*a*c))/(2*a); if(x1<x2) { printf("x1=%.5lf;x2=%.5lf ",x1,x2); } else if(x1>x2) { printf("x1=%.5lf;x2=%.5lf ",x2,x1); } } else if(b*b==4*a*c) { x1=(0-b)/(2*a); printf("x1=x2=%.5lf ",x1); } else if(b*b<4*a*c) { cout<<"No answer!"<<endl; } return 0; }
100分代码,改了一个地方就过了,真是迷( ⊙ o ⊙ )啊!可能是被卡了精度。
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int main() { double a,b,c,x1,x2; scanf("%lf%lf%lf",&a,&b,&c); if(abs(b*b-4*a*c)<=0.00001) { x1=(0-b)/(2*a); printf("x1=x2=%.5lf ",x1); } else if(b*b>4*a*c) { x1=(0-b+sqrt(b*b-4*a*c))/(2*a); x2=(0-b-sqrt(b*b-4*a*c))/(2*a); if(x1<x2) { printf("x1=%.5lf;x2=%.5lf ",x1,x2); } else if(x1>x2) { printf("x1=%.5lf;x2=%.5lf ",x2,x1); } } else if(b*b<4*a*c) { cout<<"No answer!"<<endl; } return 0; }