Найти вещественные корни квадратного уравнения - C (СИ)
Формулировка задачи:
Всем привет, реализуйте на Си, пожалуйста.Как мне сказали это вроде не сложно. Заранее благодарен.
Даны произвольные числа a,b,c. Найти вещественные корни уравнения ax^2+bx+c=0; Либо сообщить, что таких корней нет.
Решение задачи: «Найти вещественные корни квадратного уравнения»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #include <iostream>
- // подключил заг. файлы.
- void main()
- {
- int t;
- float a, b, c,x,D,x1,x2;
- printf("input a,b,c\n");
- scanf_s("%f%f%f", &a, &b, &c);
- if (a == 0)
- {
- if (b != 0 && c != 0)
- {
- x = -c / b;
- t = 1;
- printf("x=%f ", x);
- printf("t=%d ", t);
- // t=1 одно решение
- }
- else if (b!=0&&c==0 )
- {
- x = 0;
- t = 1;
- printf("t=%d ", t);
- printf("x=%f ", x);
- //t=1 одно решение
- }
- else if (b == 0 && c != 0)
- {
- t = 0;
- printf("t=%d ", t);
- //t=0 нет решений
- }
- else if (b == 0 && c == 0)
- {
- t = 2;
- printf("t=%d ", t);
- //t=2 бесконечное мн-во решений
- }
- }
- else if (a != 0 && b != 0 && c != 0)
- {
- D = (b*b) - (4 * a*c);
- if (D > 0)
- {
- x1 = (-b + sqrt(D)) / (2 * a);
- x2 = (-b - sqrt(D)) / (2 * a);
- t = 3;
- // t=3 два решения
- printf("x1=%f ", x1);
- printf("x2=%f ", x2);
- printf("t=%d ", t);
- }
- else if (D==0)
- {
- x = -b / (2 * a);
- t=1;
- printf("t=%d ", t);
- printf("x=%f ", x);
- //t=1 одно решение
- }
- else if (D < 0)
- {
- t = 0;
- printf("t=%d ", t);
- //t=0 нет решений
- }
- }
- else if (a != 0 && b != 0 && c == 0)
- {
- //ax^2+bx=0
- D = b*b;
- x1 = (-b + sqrt(D)) / (2 * a);
- x2 = (-b - sqrt(D)) / (2 * a);
- t = 3;
- // t=3 два решения
- printf("x1=%f ", x1);
- printf("x2=%f ", x2);
- printf("t=%d ", t);
- }
- else if (a != 0 && b == 0 && c != 0)
- {
- if (c > 0 && a > 0)
- {
- t = 0;
- //t=0 нет корней
- printf("t=%d ", t);
- }
- else if (c > 0 && a < 0)
- {
- x1 = -sqrt(-c / a);
- x2 = sqrt(-c / a);
- t = 3; //t=3 два решения
- printf("x1=%f ", x1);
- printf("x2=%f ", x2);
- printf("t=%d ", t);
- }
- else if (c < 0 && a>0)
- {
- x1 = -sqrt(c / a);
- x2 = sqrt(c / a);
- t = 3;//t=3 два решения
- printf("x1=%f ", x1);
- printf("x2=%f ", x2);
- printf("t=%d ", t);
- }
- else if (c < 0 && a < 0)
- {
- t = 0;//нет решений
- printf("t=%d ", t);
- }
- }
- system("pause");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д