Функция вычисления корней квадратного уравнения - C (СИ)
Формулировка задачи:
Вот выполняю задание: "Написать функцию вычисления корней уравнения a*x*x + b*x + c = 0. Значение
квадратного корня от x возвращает функция стандартной библиотеки (необходимо включить
в программу math.h)
double sqrt(double x)"
Программа работает, но считает коряво, точнее вообще не правильно.
как я понял принтф в функции не работает? тогда как вывеси два и более значений? Помогите исправить ошибки, прочитал несколько статей но конкретных ответов не нашел.
double qvadr(double a, double b, double c); double qvadr(double a, double b, double c){ double d,x1,x2; d=b*b-4*a*c; if (d>0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); x2=(-b-sqrt(d))/(2*a);printf("%f",x2); } if (d=0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); } if (d<0) printf("net kornei"); return x1; } int main() { double a,b,c; scanf("%f%f%f",&a,&b,&c); printf("%d",qvadr(a,b,c)); system("PAUSE"); return 0; }
Решение задачи: «Функция вычисления корней квадратного уравнения»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> void qvadr(float a, float b, float c){ float d,x1,x2; d=b*b-4*a*c; if (d>0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); x2=(-b-sqrt(d))/(2*a);printf("%f",x2); } if (d=0) {x1=(-b+sqrt(d))/(2*a);printf("%f",x1); } if (d<0) printf("net kornei"); } int main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); qvadr(a,b,c); system("PAUSE"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных
- Определяем функцию qvadr, которая принимает три аргумента типа float - a, b и c. Эти переменные соответствуют коэффициентам квадратного уравнения ax^2 + bx + c = 0
- Внутри функции вычисляем дискриминант уравнения по формуле d = b^2 - 4ac
- Используем условный оператор if для проверки значения переменной d. Если d больше нуля, то уравнение имеет два корня и мы вычисляем их значения, используя формулы x1 = (-b + sqrt(d))/(2a) и x2 = (-b - sqrt(d))/(2a). Затем выводим значения корней на экран
- Если d равно нулю, то уравнение имеет один корень и мы выводим его значение, используя формулу x1 = (-b + sqrt(d))/(2a). В этом случае второй корень не вычисляем, так как он равен первому корню
- Если d меньше нуля, то уравнение не имеет действительных корней и мы выводим на экран сообщение
net kornei
- В функции main() объявляем три переменные типа float a, b и c и считываем их значения с помощью функции scanf
- Вызываем функцию qvadr, передавая ей значения переменных a, b и c
- Выводим на экран сообщение
Press any key to continue...
с помощью функции system(PAUSE
) - Возвращаем 0 из функции main(), что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д