[C] Wprowadzanie funkcji (wielomianu) do programu

Witam. Jestem początkującym programistą, więc proszę o odrobinę wyrozumiałości. Mam do wykonania program który będzie liczył pierwiastki wielomianu metodą bisekcji. Wielomian podaje użytkownik. I tu jest właśnie mój problem. Jak zabierałem sie do tego programu to najpierw napisałem taki który liczył pierwiastki z podanej funkcji (było ona w miejscu “return f(x)” zamiast “f(x)”. O ile potrafię wczytać do tablicy kolejne współczynniki wielomianu, to nie mam pojęcia jak zrobić żeby program wczytał wielomian jako funkcje f(x).

Cały czas sam próbuje coś zdziałać ale będe wdzięczny za wszelkie wskazówki. Pozdrawiam i prosze o pomoc.

#include 

#include 


double a,b,c,eps;

int n,i;

double wspol[6];


double f (double x)

{

	return f(x);

}

int main ()

{


	printf("Podaj stopień wielomianu: ");

	scanf("%d", &n);


	for (i=n ; i>=0 ; i--)

	{

		printf("a[%d]: ",i);

		scanf("%d", &wspol[i]);

	}


	printf("Podaj poczatek przedzialu: ");

	scanf("%lf", &a);

	printf("Podaj koniec przedzialu: ");

	scanf("%lf", &b);


	if (f(a)*f(b) >= 0) /* tw. Bolzano – Cauchy’ego */

	{

    printf("Niewłaściwe dane wejściowe!");

    return 0;

	}


	printf("Podaj zadana dokladnosc: ");	

	scanf("%lf", &eps);


	while (b-a>eps)

	{

	c=(a+b)/2;


		if (f(a)*f(c)<0)

		b=c;


		else

		a=c;

	}


	printf("\nPierwiastek znajduje sie w punkcie x = %.4f",(a+b)/2);


	return 0;

}

double f(double x)

{

double r=0;

for(int p=6-1;p>=0;–p) r=r*x+wspol[p];

return r;

}

Dzięki kolego! Na prawdę wielkie dzięki :slight_smile: