Предмет: Информатика,
автор: maksimm2004
90 БАЛЛОВ.!!!!!! Написать программу в C++ !!!!!! Найти корни квадратного уравнения A·x2 + B·x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0), если известно, что дискриминант уравнения положителен. Вывести вначале меньший, а затем больший из найденных корней. Корни квадратного уравнения находятся по формуле x1, 2 = (?B ± vD)/(2·A), где D — дискриминант, равный B2 ? 4·A·C.
MrMiner1:
Проблем собственно нет. Но все же вывод с сколькими знаками после запятой? (Большая вероятность нецелых корней)
В C++ на сколько я знаю, не целые числа равняются нулю.
Желательно конечно, чтобы знаков после запятой не было
Программа готова. Но все же смотрите: 2.5x^2-1.5x-11.875=0 имеет два решения: -1.9 и 2.5.
Ну это простой случай. Ну а если например дискриминант уравнения равен допустим 7, то все его решения почти всегда будут иррациональными.
Ну это простой случай. Ну а если например дискриминант уравнения равен допустим 7, то все его решения почти всегда будут иррациональными.
Ответы
Автор ответа:
5
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout.precision(100);
double a, b, c, D, x1, x2;
cin >> a >> b >> c;
D=b*b-4*a*c;
/* if (D<0) {
cout << "the equation has no solutions in real numbers" << endl;
return 0;
}
if (D==0) {
cout << "x=" << -b/(2*a) << endl;
return 0;
}
Если что, это фрагмент программы для проверки D=0 и D<0. Если не нужен - просто сотри*/
D=sqrt(D);
x1=(-b+D)/(2*a);
x2=(-b-D)/(2*a);
if (x1<x2)
cout << "x1=" << x1 << endl << "x2=" << x2 << endl;
else cout << "x1=" << x2 << endl << "x2=" << x1 << endl;
return 0;
}
Спасибо большое
Похожие вопросы
Предмет: Английский язык,
автор: bacurinaana23
Предмет: Литература,
автор: DirektorLCO
Предмет: Русский язык,
автор: larisapostoeva5
Предмет: Математика,
автор: Vika200715674