Программа решения уравнений (Исправьте ошибки) - C (СИ)
Формулировка задачи:
Даны вещественные числа a,b,c,d,e,f. Переменной S присвоить 1, если оба уравнения ax^2+bx+c=0 и d^2+ex+f=0 имеют вещественные корни, и корни первого уравнения не лежат между корнями второго. В противном случае S присвоить 0.
Мой код:
#include<math.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> void yrav(float,float, float,float, float); void main() { int S; float a,b,c,d,e,f,x1,x2,y1,y2,D; yrav(a,b,c,x1,x2); yarv(d,e,f,y1,y2); if (D>=0 && x1<y1 && x2>y2) S=1; else S=0; printf("%d",S); } viod yrav (float a,float b, float c, float x1, float x2) {float D; printf("Vvedite a: /n"); scanf("%f",a); printf("Vvedite b: /n"); scanf("%f",b); printf("Vvedite c: /n"); scanf("%f",c); D=b*b-4*(a*c); if (D>0) { x1=-b-sqrt(D); x2=-b+sqrt(D); } if(D=0) { x1=-b/(2*a); x2=-b/(2*a); } if(D<0) printf("korney net"); return x1,x2,D; }
Решение задачи: «Программа решения уравнений (Исправьте ошибки)»
textual
Листинг программы
float yrav (float a,float b, float c, float* x1=0, float* x2=0) { float D=b*b-4*a*c; if (D>=0) { *x1=(-b-sqrt(D))/(2*a); *x2=(-b+sqrt(D))/(2*a); } else printf("korney net"); return D; }
Объяснение кода листинга программы
- В функции
yrav
представлены четыре аргумента типаfloat
:a
,b
,c
,x1
,x2
. - Переменная
D
инициализируется какb*b-4*a*c
. - Затем проверяется условие
D>=0
. - Если условие истинно, то выполняется блок кода внутри фигурных скобок.
- В этом блоке кода
*x1
и*x2
инициализируются как(-b-sqrt(D))/(2*a)
и(-b+sqrt(D))/(2*a)
соответственно. - Если условие
D>=0
ложно, то выполняется блок кода после else. - В этом блоке кода выводится сообщение
korney net
. - Функция возвращает значение
D
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д