要學會看錯誤提示
double intergral(double a,double b,double(*f)(double))
這個函數的第三個參數妳傳錯了
第三個參數是壹個函數的指針,這個函數的返回值類型是double參數類型是double
而妳傳的f函數,他的返回值類型是double *不是double?
所以報妳第三個參數傳錯了,
實際上就是妳的f函數寫錯了,改下就行了:
double f(double x)
{
double a=x*x+x;
return a;
}
#include<stdio.h>double?f(double?x)
{
double?a=x*x+x;
return?a;
}
double?intergral(double?a,double?b,double(*f)(double))
{
double?h=(b-a)/N,S=0;
int?i;
for(i=0;i<N;i++)
S=S+f(a+i*h)+f(a+(i+1)*h);
S=S*h/2;
return?S;
}
void?main()
{
double?sum;
sum=intergral(1,3,f);
printf("%lf",sum);
}