Решение квадратного уравнения с использованием функций - C (СИ)

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

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

Задачка:

найти решение квадратного уравнения, используя 3 функции: 1-ая печатает уравнение, 2-ая считает дискриминант, 3-я выводит корни уравнения.

Я в принципе всё написала, но компилятор жалуется на 49-50 строки из-за корня, кажется и с типами всё нормально, но что-то не идёт. Помогииите пожааалуйста
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
 
void ur(float,float,float);
float disc(float,float,float);
void korni(float,float,float);
int main ()
{
    float a,b,c,d;
    setlocale(LC_ALL,"russian");
    printf("Введите коэффициент a \n");
    scanf_s("%f",&a);
    printf("Введите коэффициент b \n");
    scanf_s("%f",&b);
    printf("Введите коэффициент c \n");
    scanf_s("%f",&c);
    ur(a,b,c);
    d=disc(a,b,c);
    printf("%.2f\n",d);
    korni(a,b,c);
    _getch();
    return 0;
}
 
void ur(float a,float b,float c)
{
    printf("y=(%.2f)x^2+(%.2f)x+(%.2f)\n",a,b,c);
}
 
float disc (float a,float b,float c)
{
    float disc;
    disc=b*b-4*a*c;
    return disc;
}
 
void korni(float a,float b,float c)
{
    float x1,x2;
    if (disc==0)
    {
        x1=-b/2*a;
        printf("x1=%.2f\n",x1);
    }
    if (disc>0)
    {
        x1=(-b+sqrt(disc))/2*a;
        x2=(-b-sqrt(disc))/2*a;
        printf("x1=%.2f, x2=%.2f",x1,x2);
    }
    else
        printf("Корней нет!");
}

Решение задачи: «Решение квадратного уравнения с использованием функций»

textual
Листинг программы
void korni(float a,float b,float c)
{
    float d = disc(a, b, c);
    float x1,x2;
    if (d==0)
    {
        x1=-b/2*a;
        printf("x1=%.2f\n",x1);
    }
    if (d>0)
    {
        x1=(-b+sqrt(d))/2*a;
        x2=(-b-sqrt(d))/2*a;
        printf("x1=%.2f, x2=%.2f",x1,x2);
    }
    else
        printf("Корней нет!");
}

Объяснение кода листинга программы

  1. В функции korni передаются три аргумента типа float: a, b и c. Эти переменные используются для представления коэффициентов квадратного уравнения вида ax^2 + bx + c = 0.
  2. Внутри функции определяется переменная d с помощью функции disc(a, b, c). Эта переменная представляет собой дискриминант квадратного уравнения.
  3. Если d равно нулю, то уравнение имеет один корень, и этот корень вычисляется и присваивается переменной x1. Затем значение x1 выводится на экран с помощью функции printf.
  4. Если d больше нуля, то уравнение имеет два корня. Они вычисляются с помощью формулы x1 = (-b + sqrt(d))/2*a и x2 = (-b - sqrt(d))/2*a. Затем значения x1 и x2 выводятся на экран с помощью функции printf.
  5. Если d меньше или равно нулю, то выводится сообщение Корней нет! с помощью функции printf.

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

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