Я делаю курс в C, где меня попросили найти корни квадратного уравнения. Сначала я попытался с помощью жесткого кодирования, и это сработало.
Затем я дал входные данные, используя scanf (например, a, b, c), он работал.
Но я потерпел неудачу в сценарии, где все квадратное выражение берется в качестве входных данных, т.е. (ax ^ 2 + bx + c), и извлекает эти значения a, b, c из выражения.
Я потратил много времени на это, искал в Интернете, я не мог найти ответ, поэтому я прошу здесь о помощи.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define PI 3.14
int main(void)
{
puts("---- ROOTS ----");
char equ[20]; //Quadratic Expression in an Array
float a,b,c,ope;
float root1,root2;
printf("please provide the expression :");
scanf("%d",&equ[20]);//Example : 5x^2+3x+1 as input
a == equ[0];//since ax^2+bx+c in the above expression a==5
b == equ[3];//b==3
c == equ[6];//c==1
ope = sqrt(b*b -4*a*c);
root1 = (-b + ope)/2*a;
root2 = (-b - ope)/2*a;
printf("The root 1 of the expression is : %d", root1);
printf("\nThe root 2 of the expression is : %d", root2);
return EXIT_SUCCESS;
}
ВЫХОД:
PS F:\Thousand C GO> gcc 3.c
PS F:\Thousand C GO> ./a
---- ROOTS ----
please provide the expression :5x^2+3x+1//edited
The root 1 of the expression is : 0
The root 2 of the expression is : 0
Я хотел знать, есть ли способ решить эту проблему в C, и если да, то как?
если нет, то почему?
Помощь очень ценится.
Спасибо.