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:
Und hier die Fehlermeldungen im Programm "Pelles C"
Kann mir jemand helfen? Ich muss es unbedingt für ein Referat lösen...
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...