2

私はこの方程式を持っていますが、sci calcを使用した出力は:0.017 ...ですが、cで実行すると、出力は:0.84になります。

入力は1です

式は次のとおりです。sin(x)-x ^ 4 + 1

float sinp(float p1)
{
    float fop;
    float ppowers;
    printf("%f",p1);
    ppowers = pow(p1,4);
    fop = sin(p1)-ppowers+1;
    return (fop);
}

これの背後にある理由は、それがラッドまたは程度のためであるかどうかのようにありますか?

私はCの罪や数学関数をそれほど使ったことがないので、ここで何が悪いのかはわかりません。グーグルは私に.84をaswerとして与えました、しかし私の計算は私に.017を与えます、それは私が私の計算で同じ出力を得る必要があるので本当に混乱しています。

皆さん、ありがとうございました :)

4

2 に答える 2

4

数学およびすべてのコンピューター言語では、三角関数はラジアンで機能します。度で作業したい場合は、次のように変換を行う(または独自のsin_degrees関数を定義する)必要があります。

double sin_degrees(double degrees) {
    return sin(degrees * (M_PI/180.0);
}
于 2013-01-29T12:52:10.110 に答える
3

グーグルは罪の角度測度として度を使用しているのに対し、C ++はラジアンを使用していると思いますが、それが違いの理由です。度単位の角度をラジアン単位の同じ値に変換するには、次のようにします。

rad_angle = deg_angle * (PI / 180.0);

それはあなたPIが知っている古き良き定数です。

于 2013-01-29T12:52:17.717 に答える