#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;
}