#include <malloc.h>
#include <stdio.h>

int horner(float *coeff, int n, int c);

int main(){

int i, c, n;
float *coeff;

printf("Inserire il grado del polinomio: ");
scanf("%d", &n);

if(!(coeff = (float *)malloc(n*sizeof(float))))
abort();

printf("\nInserire uno ad uno i valori dei coefficienti: \n");
for(i = 0; i <= n; i++){
printf("Inserire il valore del coeff %d: ", i);
scanf("%f", &coeff[i]);
}

printf("\nInserisci il valore del punto c: ");
scanf("%d",&c);

printf("%d", horner(coeff, n, c));

free(coeff);
}

int horner(float *coeff, int n, int c){

int i, p;

p = coeff[n];
for(i = n-1; i >= 0; i--)
{
p = p * c + coeff[i];
}
return p;
}