Решение квадратного уравнения с использованием функций - 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("Корней нет!");
}
Объяснение кода листинга программы
- В функции
korniпередаются три аргумента типаfloat:a,bиc. Эти переменные используются для представления коэффициентов квадратного уравнения видаax^2 + bx + c = 0. - Внутри функции определяется переменная
dс помощью функцииdisc(a, b, c). Эта переменная представляет собой дискриминант квадратного уравнения. - Если
dравно нулю, то уравнение имеет один корень, и этот корень вычисляется и присваивается переменнойx1. Затем значениеx1выводится на экран с помощью функцииprintf. - Если
dбольше нуля, то уравнение имеет два корня. Они вычисляются с помощью формулыx1 = (-b + sqrt(d))/2*aиx2 = (-b - sqrt(d))/2*a. Затем значенияx1иx2выводятся на экран с помощью функцииprintf. - Если
dменьше или равно нулю, то выводится сообщениеКорней нет!с помощью функцииprintf.