#include
#include
#include
using namespace std;
int main() {
double a,b,c;
while(cin>>a>>b>>c) {
double delta=b*b-4*a*c;
if(delta>=0) {
double x1=(-1*b+sqrt(delta))/(2*a);
double x2=(-1*b-sqrt(delta))/(2*a);
if(x1==x2) printf("x1=x2=%.5lf\n",x1);
else {
printf("x1=%.5lf;x2=%.5lf\n",x1,x2);
}
} else {
double shibu=-1*b/(2*a);
double xubu=sqrt(-1*delta)/(2*a);
printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n",shibu,xubu,shibu,xubu);
}
}
return 0;
}
你有什么问题?
其实这种问题,你用单步执行,看看各个变量里面的值就知道结果了。
直接告诉你没什么意思的。
其实这就是单步执行,DEBUG一下就出来的问题。。。
这个编程题其实更多的是在最短时间之内解决才是关键。。计算机中你用乘法还不如用加法代替,这样计算机就不会用浮点乘法去计算,用浮点加减法补码计算,自己掂量一下吧。。。