Найти вещественные корни квадратного уравнения - 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");
}

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


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

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

10   голосов , оценка 3.8 из 5
Похожие ответы