Решение квадратного уравнения (найти ошибку) - 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 выводится соответствующее сообщение об ошибке или о наличии корней.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д