1. Условие
Даны действительные числа a, b, c (a не равно 0). Полностью исследовать биквадратное уравнение
ax4+bx2+c=0.
Если действительных корней нет, то должно быть выдано сообщение об этом, иначе должны быть выданы два или четыре корня.
2. Решение
Оператор вводит значения коэффициентов уравнения. Вычисляется значение дискриминанта
d=b2-4ac.
Если дискриминант меньше нуля, то уравнение не имеет действительных корней, иначе вычисляются корни уравнения по следующим формулам:
где
При вычислениях контролируется ситуация, при которой y1 или y2 меньше нуля, и находятся два или четыре корня.

4. Текст программы
1: #include <stdio.h>
2: #include <math.h>
3: #include <conio.h>
4: void main()
5: {
6: float a, b, c, d, y1, y2, x1, x2, x3, x4;
7: clrscr();
8: printf ("Введите a, b, c:\n");
9: scanf ("%f%f%f", &a, &b, &c);
10: d = b*b - 4*a*c;
11: printf ("d=%f\n", d);
12: if (d<0)
13: {
14: printf ("Уравнение не имеет действительных корней.\n");
15: }
16: else
17: {
18: if ( fabs(d)<0.00001) /*Сравнение с нулем.*/
19: {
20: if (-b / (2*a)<0)
21: printf ("Уравнение не имеет действительных корней.\n");
22: else
23: {
24: x1 = sqrt(-b/(2*a));
25: x2 = -x1;
26: printf ("x1=%.2f\n", x1);
27: printf ("x2=%.2f\n", x2);
28: }
29: }
30: else
31: {
32: y1 = (-b + sqrt(d))/(2*a);
33: y2 = (-b - sqrt(d))/(2*a);
34: if (y1>0 && y2>0)
35: {
36: x1 = sqrt(y1);
37: x2 = -sqrt(y1);
38: x3 = sqrt(y2);
39: x4 = -sqrt(y2);
40: printf ("x1=%.2f\n", x1);
41: printf ("x2=%.2f\n", x2);
42: printf ("x3=%.2f\n", x3);
43: printf ("x4=%.2f\n", x4);
44: }
45: else if (y1>0 && y2<0)
46: {
47: x1 = sqrt(y1);
48: x2 = -x1;
49: printf ("x1=%.2f\n", x1);
50: printf ("x2=%.2f\n", x2);
51: }
52: else if (y1<0 && y2>0)
53: {
54: x1 = sqrt(y2);
55: x2 = -x1;
56: printf ("x1=%.2f\n", x1);
57: printf ("x2=%.2f\n", x2);
58: }
59: else
60: printf ("Уравнение не имеет действительных корней.\n");
61: }
62: }
63: printf ("Для завершения нажмите любую клавишу.\n");
64: getchar( );
65: }
5. Работа программы
Введите a, b, c: 1 -13 36 d=25.000000 x1=3.00 x2=-3.00 x3=2.00 x4=-2.00 Для завершения нажмите любую клавишу.6. Проверка
При a = 1,
b = -13, c=36 расчет будет следующим:
d = (-13)2 - 4*36*1 = 169 - 144 = 25;
y1 = 9;
y2 = 4;
x1 = 3;
x2 = -3;
x3 = 2;
x4 = -2.
Программа работает корректно.