Ich versuche, die Funktion, die ich von meinem Professor gegeben wurde, um das Integral einer Polynomfunktion (Polynom wie: ax^2 + bx + c) zu berechnen. die Funktion ist:numerische Integration mit einem Zeiger auf eine Funktion immer 0
Ich habe viel geändert, um eine Polynomfunktion zu integrieren. aber ich bekam die Antwort 0. warum ist das? und ich würde mich freuen, wenn jemand versuchen würde, meine Arbeit zu korrigieren. Mein Code ist:
double integralPoly(double x, double a, double b, double c){
return (a*pow(x,3))/3 +(b*pow(x,2))/2 + (c*x);
}
double numbericalIntegration(double a ,double b ,double(*func)(double,double,double,double), double firstNum, double secondNum, double thirdNum){
double delta = (b - a)/32;
double sum=0, x;
for(x= a+0.5*delta; x<b ; x+=delta)
{
sum+=(*func)(x, firstNum, secondNum, thirdNum);
}
return sum*delta;
}
int main()
{
double (*func)(double,double,double,double);
func = integralPoly;
double sum = numbericalIntegration(2,4,func,1,1,4);
printf("sum = %d",sum);
return 0;
}
Sie versuchen, ein 'double' mit dem Format'% d' zu drucken, was für 'int' steht. Sie benötigen hier eine von '% e','% f' oder '% g' und Sie sollten auch eine neue Zeile' \ n' nach der Zahl drucken. Aktivieren Sie die Compilerwarnungen, um sich über solche Formatkonflikte zu informieren. –
Wissen Sie, wie hoch die erwartete Ausgabe für diese Nummern ist? – Nebeski