Решение квадратного уравнения (найти ошибку) - C (СИ)
Формулировка задачи:
float discr( float a,float b,float c); float findx(float b, float a, float c); int main() { float a,b,c,x1,x2,x3,d; printf("a,b,c:"); scanf("%f%f%f",&a,&b,&c); d=discr(a,b,c); printf("\nDiscriminant:%.f",d); x1=findx(x1,x2,x3)); x2=findx(x1,x2,x3)); x3=findx(x1,x2,x3)); printf("%.f%.f%.f",findx(x1,x2,x3)); getch(); return 0; } float discr(float a, float b, float c) { return(b*b-4*a*c); } float findx(float x1, float x2, float x3) // не могу понять где ошибка, именно в функции { float a,b,c; if (discr(a,b,c) < 0) { printf("Discriminant ne mojet bit' otricatelnim"); exit(1); } else if(discr(a,b,c) > 0) { x1=(-b+sqrt(discr(a,b,c)))/2*a; x2=(-b-sqrt(discr(a,b,c)))/2*a; return x1,x2; } else if (discr(a,b,c) == 0) { x3=-b/(2*a); return x3; } }
Решение задачи: «Решение квадратного уравнения (найти ошибку)»
textual
Листинг программы
float discr(float a, float b, float c) { return (b*b-4.*a*c); } int findx(float a, float b, float c,float *x1, float *x2) // не могу понять где ошибка, именно в функции { double d;d=discr(a,b,c); if ( d< 0 || a==0) return 0; else if(d > 0) { *x1=(-b+sqrt(d))/(2.*a); *x2=(-b-sqrt(d))/(2.*a); return 2; } *x1=*x2=-b/(2*a); return 1; } int main() { int n; float a,b,c,x1,x2,x3,d; printf("a,b,c:"); scanf("%f%f%f",&a,&b,&c); d=discr(a,b,c); printf("\nDiscriminant:%.f",d); n=findx(a,b,c,&x1,&x2); switch(n) { case 0:printf("no solution");break; case 1: printf("one root %f",x1);break; case 2: printf("two roots %f %f",x1,x2); } getch(); return 0; }
Объяснение кода листинга программы
- В функции discr вычисляется дискриминант квадратного уравнения.
- В функции findx проверяется, есть ли решение у квадратного уравнения, и если есть, то вычисляются корни.
- В функции main вводятся значения a, b, c с клавиатуры.
- Вычисляется дискриминант и выводится на экран.
- Вызывается функция findx, в которую передаются значения a, b, c, а также адреса переменных x1 и x2.
- В зависимости от результата работы функции findx выводится соответствующее сообщение об ошибке или о наличии корней.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д