更新时间2018-03-06 20:01:42
程序看上去没有问题,
只是你的输入数据
1,2,-3
看上去你的逗号是中文的
改为英文的试试
123456789101112131415161718192021222324252627282930直接使用2次方程的解公式:(-b±√(b²-4ac))/21.输入a,b,c的值2.先计算delta=b²-4ac的结果。3.判断delta,<0时无实数解,=0时有唯一解,>0时有2个解。4.根据3的判断结果,计算 (-b±√(b²-4ac))/2 #include <iostream>using namespace std; int main() { double a, b, c; double x1, x2; cout << "输入a,b,c:"; cin >> a >> b >> c; double delta = b*b -4*a*c; if (delta<0) { cout << "方程无实数解" << endl; } else if (delta<0.00000001) {//double类型的数据,不要直接判断==0, //因为有时数据很小,但不等于0,计算机表示不了 //所以设定一个精度值,这里随便用了0.00000001, //当delta小于这个精度时,就认为=0 x1 = x2 = -b/2.0; cout << "方程有唯一解:x1=x2=" << x1 << endl; } else {//delta > 0,有2个解 x1 = (-b + delta)/2.0; x2 = (-b - delta)/2.0; cout << "方程解x1 = " << x1 << ", x2 = " << x2 << endl; } return 0;}