分部计量

Measuration By Division

本文关键字:      更新时间:2023-10-16

函数为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];
相关文章:
  • 没有找到相关文章