Выяснить имеет ли уравнение ax^2+bx+c=0 действительные корни - C (СИ)
Формулировка задачи:
Даны действительные числа a,b,с (a!=0) Выяснить имеет ли уравнение ax^2+bx+c=0 действительные корни. Если действительные кони есть, то найти их. В противном случае ответом должно служить что корней нет. Помогите пожалуйста!
Решение задачи: «Выяснить имеет ли уравнение ax^2+bx+c=0 действительные корни»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
//-----------------------------------------------------------------------------
int GetX(float a, float b, float c,
float* x1, float* x2) {
float d = pow(b, 2) - 4 * a * c;
if (d < 0) {
return 0;
}
*x1 = (-b + sqrt(d)) / (2 * a);
*x2 = (-b - sqrt(d)) / (2 * a);
return 1;
}
//-----------------------------------------------------------------------------
int main() {
float a, b, c;
float x1, x2;
printf("a, b, c: ");
if ((scanf("%f%f%f", &a, &b, &c) != 3) || (a == 0)) {
return 1;
}
if (GetX(a, b, c, &x1, &x2)) {
printf("x1 = %.2f, x2 = %.2f\n", x1, x2);
}
else {
printf("complex values\n");
}
return 0;
}