Уточнаяющий вопрос по С++ решение математических задач
Написал код для программы в С++ по заданию но не уверен в праильности возможно вы подскажите.
Задание звучит так:
Даны действительные числа a, b, c (a ≠ 0). Полностью
исследовать биквадратное уравнение ax4 + bx2 + c = 0, т. е. если
действительных корней нет, то должно быть выдано сообщение об
этом, иначе должны быть выданы два или четыре корня
123456789101112131415161718192021222324252627282930313233343536
#include <iostream>
#include <math.h>
using namespace std;
int main() {
double a, b, c, x1, x2, x3, x4, t1, t2, d, D; bool log=false;
cin>>a;
cin>>b;
cin>>c;
D = (b * b - 4 * a * c); {
if (D<0) {
cout<<"Нет решений";
}
else
{
d=sqrt(D);
t1=( - b + d )/2.0 / a;
t2=( - b - d )/2.0 / a;
if (t1>0)
{
x1=sqrt(t1);
x2=-sqrt(t1);
cout<<"X1="<<x1<<"; X2="<<x2<<"; ";
log = true;
}
if (t2>0){
x3=sqrt(t2);
x4=-sqrt(t2);
if (log == true){cout<<"X3="<<x3<<"; X4="<<x4<<";";}
else (log == false);{cout<<"X1="<<x3<<"; X2="<<x4<<";";}
}
}
}
}
По дате
По Рейтингу
1. Не обрабатывается случай, когда и t1, и t2 одновременно меньше 0: это ведь тоже "Нет решений".
2. Не обрабатывается случай, когда D = 0: в этом случае либо нет корней, либо 2 корня. А у тебя вместо двух выведет четыре корня.
и это ;
else (log == false);{cout<<"X1="<<x3<<"; X2="<<x4<<";";}
даст эффект такой:
else (log == false); // тупо ничего
cout<<"X1="<<x3<<";
X2="<<x4<<";";
Так скомпилируй...