函数是y=x^2+2x+1
,域是从 0 到 10。如果输入间隔数,程序会打印结果。完成功能,MeasurationByDivision()
。
我做了下面的C代码,但我得到了非常错误的结果..我想我错过了一些错误的东西..
应该是这样的结果:
10
505.000000
35
460.612245
我的代码:
#include <stdio.h>
#include <math.h>
void MeasurationByDivision( double* result, int intervals );
float f(float t) { return( pow(t,3) + 2 ); }
int main(void) {
int intervals ;
double result=0;
scanf("%d", &intervals ) ;
MeasurationByDivision(&result, intervals ) ;
printf( "%lf\n", result ) ;
fflush(stdin);
getchar();
}
void MeasurationByDivision(double* result, int intervals)
{
int i,a=0;
double x = 10/(double)intervals;
float y[100];
for(i=1; i<=intervals; i++) {
y[i]=a+i*x;
*result += x*f(y[i]);
}
}
这段代码结果是:
10
3045.000000