C - Funktion in einer Funktion benutzen

guiller

Grünschnabel
Hallo Leute, ich habe ein kleines Programm geschrieben, welches erst eine Funktion n-ten Grades (höchstens 21 :> ) je nach Eingabe des Benutzers macht, und dann eine Nullstelle zwischen einem bestimmten Intervall der Funktion ausrechnet, jetzt geht das aber irgendwie nicht hier mal der Code und dann die Fehlermeldung:

Code:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

//Funktion F
double f (int Grad, double Koeffizienten[], double x)  
{  
double Ergebnis = 0;  
for (int i = 0; i <= Grad; ++i)  
	{   
		Ergebnis += Koeffizienten[i] * pow(x, i);  
	}  

return Ergebnis;

}

//NULLSTELLENFUNKTION
double NS(double LG ,double RG, double Koeffizienten, int Grad)  {
	double MW=(LG+RG)/2;

		if(  round(  f(Grad,Koeffizienten,MW)*1000000 ) /1000000 == 0.0) return MW;

		if (f(LG) > 0.0 && f(RG) < 0.0) {		
		if( f(MW) > 0.0) return NS(MW,RG);
		if( f(MW) < 0.0) return NS(LG,MW);
	} 
	
		if (f(LG) < 0.0 && f(RG) > 0.0) {
			if( f(MW) > 0.0) return NS(LG,MW);
			if( f(MW) < 0.0) return NS(MW,RG);
	}

	return MW;
}


//HAUPTFUNKTION
int main() {
	
	//VARIABLENDEKLARATIONEN
	int Grad;
	double Koeffizient[21];
	int ia;
	int ie;
	int i; //Zum Gradzurchzählen

	//Abfragen des Grades
	printf("Grad >");
	scanf("%i",&Grad);

	//ABFRAGEN DER KOEFFIZIENTEN
	for (i=0;i<=Grad;i++) {
		printf("Koeffizient Nr %i >",i);
		scanf("%lf",&Koeffizient[i]);
	}

	
	//LINKE  GRENZE
	printf("Linke Grenze >");
	scanf("%i",&ia);

	//RECHTE GRENZE
	printf("Rechte Grenze >");
	scanf("%i",&ie);

	//NULLSTELLEN AUSGEBEN
	printf("Die Nullstelle zwischen %i und %i ist bei %lf",ia,ie,NS(ia,ie,Koeffizient,Grad));


//ENDE
	system ("pause");
	return 0;

}

Und hier die Fehlermeldungen im Programm "Pelles C"
Erzeugen von NSTGradN.obj.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(22): error #2140: Type error in argument 2 to 'f'; found 'double' expected 'double *'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(24): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(24): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(25): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(25): error #2070: Insufficient number of arguments to 'NS'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(26): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(26): error #2070: Insufficient number of arguments to 'NS'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(29): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(29): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(30): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(30): error #2070: Insufficient number of arguments to 'NS'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(31): error #2070: Insufficient number of arguments to 'f'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(31): error #2070: Insufficient number of arguments to 'NS'.
C:\Dokumente und Einstellungen\Janner\Desktop\C\NullstellenFunktionenGradN\NSTGradN.c(68): error #2140: Type error in argument 3 to 'NS'; found 'double *' expected 'double'.
*** Fehlercode: 1 ***
Fertig.

Kann mir jemand helfen? Ich muss es unbedingt für ein Referat lösen...
 
Hi,

du rufst die Funktionen mit falschen oder zu wenigen Parametern auf. Schau dir nochmal an, was die Funktionen haben wollen und was du tatsächlich beim Aufruf übergibst.

Grüße, D.
 
Ahh wunderbar, nach doppeltem hinsehn hab ich gemerkt, dass ich doch "einige" ^^ Parameter vergessen hab ;)

Vielen dank für den Hinweis
 
Zurück