Найти вещественные корни квадратного уравнения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет, реализуйте на Си, пожалуйста.Как мне сказали это вроде не сложно. Заранее благодарен. Даны произвольные числа a,b,c. Найти вещественные корни уравнения ax^2+bx+c=0; Либо сообщить, что таких корней нет.

Решение задачи: «Найти вещественные корни квадратного уравнения»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <iostream>
  5. // подключил заг. файлы.
  6.  
  7.  
  8. void main()
  9. {
  10.     int t;
  11.     float a, b, c,x,D,x1,x2;
  12.     printf("input a,b,c\n");
  13.     scanf_s("%f%f%f", &a, &b, &c);
  14.     if (a == 0)
  15.     {
  16.         if (b != 0 && c != 0)
  17.         {
  18.             x = -c / b;
  19.             t = 1;
  20.             printf("x=%f  ", x);
  21.             printf("t=%d  ", t);
  22.             // t=1 одно решение
  23.         }
  24.         else if (b!=0&&c==0 )
  25.         {
  26.             x = 0;
  27.             t = 1;
  28.             printf("t=%d  ", t);
  29.             printf("x=%f  ", x);
  30.             //t=1 одно решение
  31.         }
  32.         else if (b == 0 && c != 0)
  33.         {
  34.             t = 0;
  35.             printf("t=%d  ", t);
  36.             //t=0 нет решений
  37.         }
  38.         else if (b == 0 && c == 0)
  39.         {
  40.             t = 2;
  41.             printf("t=%d  ", t);
  42.             //t=2 бесконечное мн-во решений
  43.         }
  44.     }
  45.     else if (a != 0 && b != 0 && c != 0)
  46.     {
  47.         D = (b*b) - (4 * a*c);
  48.  
  49.         if (D > 0)
  50.         {
  51.             x1 = (-b + sqrt(D)) / (2 * a);
  52.             x2 = (-b - sqrt(D)) / (2 * a);
  53.             t = 3;
  54.             // t=3 два решения
  55.             printf("x1=%f  ", x1);
  56.             printf("x2=%f  ", x2);
  57.             printf("t=%d  ", t);
  58.         }
  59.         else if (D==0)
  60.         {
  61.             x = -b / (2 * a);
  62.             t=1;
  63.             printf("t=%d  ", t);
  64.             printf("x=%f  ", x);
  65.             //t=1 одно решение
  66.         }
  67.         else if (D < 0)
  68.         {
  69.             t = 0;
  70.             printf("t=%d  ", t);
  71.             //t=0 нет решений
  72.         }
  73.     }
  74.     else if (a != 0 && b != 0 && c == 0)
  75.     {
  76.         //ax^2+bx=0
  77.         D = b*b;
  78.         x1 = (-b + sqrt(D)) / (2 * a);
  79.         x2 = (-b - sqrt(D)) / (2 * a);
  80.         t = 3;
  81.         // t=3 два решения
  82.         printf("x1=%f  ", x1);
  83.         printf("x2=%f  ", x2);
  84.         printf("t=%d  ", t);
  85.     }
  86.     else if (a != 0 && b == 0 && c != 0)
  87.     {
  88.  
  89.         if (c > 0 && a > 0)
  90.         {
  91.         t = 0;
  92.         //t=0 нет корней
  93.         printf("t=%d  ", t);
  94.         }
  95.         else if (c > 0 && a < 0)
  96.         {
  97.            
  98.             x1 = -sqrt(-c / a);
  99.             x2 = sqrt(-c / a);
  100.             t = 3; //t=3 два решения
  101.             printf("x1=%f  ", x1);
  102.             printf("x2=%f  ", x2);
  103.             printf("t=%d  ", t);
  104.  
  105.         }
  106.         else if (c < 0 && a>0)
  107.         {
  108.            
  109.             x1 = -sqrt(c / a);
  110.             x2 = sqrt(c / a);
  111.             t = 3;//t=3 два решения
  112.             printf("x1=%f  ", x1);
  113.             printf("x2=%f  ", x2);
  114.             printf("t=%d  ", t);
  115.         }
  116.         else if (c < 0 && a < 0)
  117.         {
  118.             t = 0;//нет решений
  119.             printf("t=%d  ", t);
  120.         }
  121.        
  122.  
  123.     }
  124.     system("pause");
  125. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы