/*	horner.c -- Sourcecode unter der GPL, (c) 2003 @ RTC			*/
/*	Programm demonstriert die Berechnung des Funktionswertes eines		*/
/*	Polynoms n. Grades anhand des Horner-Schemas				*/

#include <stdio.h>

/* ---- rekursive Funktion horner() -------------------------------------------	*/
int horner(int a[], int x, int n){
	int h;

	if(n>0)
		h=horner(a, x, n-1);
	else
		return a[n];

	return h*x+a[n];
}


/* ---- main() ----------------------------------------------------------------	*/
int main(void){
	int a[]={1,2,3,4,5,6,7,8,9}; //könnte auch beliebig anders sein
	int x, h, n;

	printf("Wie lautet x?: ");
	scanf("%d", &x);
	do{
		printf("Welchen Grad soll das Polynom haben?: ");
		scanf("%d", &n);
	}while(n<0 || n>8); //bloß bis 8, da |a|=9

	h=horner(a, x, n);

	printf("Der Funktionswert des Polynoms lautet: %d\n", h);
	
	return 0;
}

