9
#include <stdio.h>
#include <math.h>

double integrateF(double low, double high)
{
    double low = 0;
    double high = 20;
    double delta_x=0;
    double x, ans;
    double s = 1/2*exp((-x*x)/2);

    for(x=low;x<=high;x++)
        delta_x = x+delta_x;
    ans = delta_x*s;

    return ans;
}

low と high は「別の種類のシンボルとして再宣言されている」とありますが、それが何を意味するのかわかりません。基本的に、私がここで行っていることは (読み取り:試行中)、低 (0 に設定) から高 (20) まで積分してリーマン和を求めることだけです。for ループもちょっとトリッピーに見えます...私はとても迷っています。

編集:

#include <stdio.h>
#include <math.h>

double integrateF(double low, double high)
{
    low = 0;
    high = 20;
    double delta_x=0;
    double ans = 0;
    double x;
    double s = 1/2*exp((-x*x)/2);

    for(x=low;x<=high;x++)
    {
        delta_x = x+delta_x;
        ans = ans+(delta_x*s);
    }
    return ans;
}

^ブレースなどの後でも、まだ機能しません。「「WinMain@16」への未定義の参照」と表示されます...

4

6 に答える 6

1

lowメソッドのhighパラメータとしてすでに渡されていますintegrateF。しかし、それらはメソッド内で再度宣言されています。したがって、エラー。

于 2013-10-20T04:01:32.833 に答える