分部计量
Measuration By Division
函数为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( "%lfn", 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
功能为
y=x^2+2x+1
为什么你的函数是这样的?
float f(float t) { return( pow(t,3) + 2 ); }
更改它以匹配给定的函数,您应该会得到预期的结果。
我还想去掉100元素的数组:你根本不需要数组,如果你尝试超过100个区间,就会出现严重的错误。
float f(float t) { return( pow(t,3) + 2 ); }
至
float f(float t) { return((t + 1)*(t + 1) ); }
添加到应该是460.612245…为什么我得到这个结果
使用
double f(double t) { return((t + 1)*(t + 1) ); }
...
double y[100];
相关文章:
- 没有找到相关文章