[C++] Schemat hornera -problem

Witam;]

Mam za zadanie napisac program ktory oblicza wartosc wielomianu n-tego stopnia (schemat hornera), metoda rekurencyjna,

Napisaslem cos takiego, ale kompilator pokazuje blad: [Linker error] undefined reference to `horner(int, float, float)’

Co jest nie tak ;]

#include 

#include 



using namespace std;


float horner (int,float ,float); 


int main()

 {


    int n;

    float wsp[n],x;

    cout<<"Podaj stopien wielomianu (n) ";

    cin>>n;


    for (int i=0; i<=n; i++)

     { 

       cout<<"Poadj wsp?";

       cin>>wsp[i];

     }


    cout<<"Podaj wartosc argumentu dla, ktorego obliczana jest wartosc wielomianu(x) ";

    cin>>x;

    cout<<"Wartosc: "<
    cin.ignore();

    getchar();

    return 0;

}


float horner(int n, float wsp[], float x)

   {

    if(n==0)

    return wsp[0]*x;

    else

    return horner(n-1,wsp,x)*x+wsp[n];

   }

Najpierw deklarujesz funkcję float horner (int,float ,float);

a potem definiujesz float horner(int n, float wsp[], float x)

inne argumenty.

To jak mam to zadeklarowac?

W innym przypadku: potega do potegi n-tej jest podobnie zadeklarowane i zdefiniowane a dziala.

#include 

#include 

using namespace std;


int potega(int, int); 


int main()

{

    int x, n;

    cout<<"wprowadz liczbe: ";

    cin>>x;

    cout<<"wprowadz wykladnik ";

    cin>>n;

    cout<<"Wartosc liczby "<
    cin.ignore();

    getchar();

    return 0;

}

int potega (int x, int n)

{

    if(n==0)

    return 1;

    else

    return potega (x,n-1)*x;

}

Najpierw deklarujesz argumenty: int, float, float

A potem definiujesz funkcję z argumentami int, tablica float, float.