Решение квадратного уравнения - C (СИ) (77109)
Формулировка задачи:
Корни X1 и X2 - передаются по ссылке и "возвращаются" в main()
сама функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть
помогите доделать вот эту програмулечку
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- /*здесь должна быть функция функция QuadEqu() возвращает 0, если решения нет и 1 - если решение есть и чтобы корни х1 и х2 - передавались по ссылке например *х1 */
- int main()
- { double a, b, c, d;
- a=b=c=d=0.0;
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- printf("Введите коэффициент А: ");
- scanf("%lf", &a);
- printf("Введите коэффициент В: ");
- scanf("%lf", &b);
- printf("Введите коэффициент C: ");
- scanf("%lf", &c);
- if(a==0.0)
- {printf("Решений нет - А=0\n"); system("pause"); return 1;}
- d = b*b - 4.0 * a *c;
- if(d<0.0)
- {printf("Решений нет - D<0\n"); system("pause"); return 2;}
- if(d==0.0)
- printf("Один корень - %.2lf\n", -b/2.0/a);
- else
- printf("Два корня: X1= %.2lf X2= %.2lf \n",
- (-b-sqrt(d))/2.0/a, (-b+sqrt(d))/2.0/a );
- system("pause");
- return 0;
- }
Решение задачи: «Решение квадратного уравнения»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #define CP SetConsoleCP(1251); SetConsoleOutputCP(1251);
- #define NEWLINE putchar('\n');
- #define konec system("pause"); return 0;
- double QuadEqu(double a, double b, double c, double d, double *X1, double *X2);
- int main()
- {
- double a, b, c, d, result, X1, X2;
- a=b=c=d=X1=X2=result=0.0;
- CP
- printf("Введите число a: ");
- scanf("%lf", &a);
- printf("Введите число b: ");
- scanf("%lf", &b);
- printf("Введите число c: ");
- scanf("%lf", &c);
- printf("Вы ввели: a= %.2lf b= %.2lf c= %.2lf \n", a, b, c);
- result = QuadEqu(a, b, c, d, &X1, &X2);
- printf("X1 = %.2lf, X2 = %.2lf\n", X1, X2);
- printf("Функция вернула значение: %.2lf\n", result);
- NEWLINE
- konec
- }
- double QuadEqu(double a, double b, double c, double d, double *X1, double *X2)
- {
- if(a == 0.0)
- {printf("Решения нет! a = 0 \n"); return 0.0;}
- d = b*b - 4 * a * c;
- if(d < 0.0)
- {printf("Решения нет! d < 0 \n"); return 0.0;}
- if(d == 0.0)
- {printf("Один корень! \n"); *X1=*X2=(-b+sqrt(d))/2.0*a; return 1.0;}
- else
- *X1 = (-b+sqrt(d))/2.0*a;
- *X2 = (-b-sqrt(d))/2.0*a;
- return 1.0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью и вводом-выводом данных
- Определение функции
QuadEqu
, которая принимает значения a, b, c, d и возвращает корни квадратного уравнения - Ввод значений a, b, c, d с помощью функции
scanf
- Вывод введенных значений на экран
- Вызов функции
QuadEqu
с передачей ей введенных значений и сохранением результатов в переменных X1, X2 и result - Вывод значений X1, X2 на экран
- Вывод значения result на экран
- Возврат из функции
main
с помощьюkonec
- Если a равно нулю, выводится сообщение
Решения нет! a = 0
и функция возвращает 0 - Вычисление значения d как bb - 4a*c
- Если d меньше нуля, выводится сообщение
Решения нет! d < 0
и функция возвращает 0 - Если d равно нулю, выводится сообщение
Один корень!
и значения X1 и X2 вычисляются как (-b+sqrt(d))/2.0*a и сохраняются в переменных X1 и X2, после чего функция возвращает 1 - В противном случае, значения X1 и X2 вычисляются как (-b+sqrt(d))/2.0a и (-b-sqrt(d))/2.0a соответственно
- Функция возвращает 1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д