1

重力の式を変更するまで、いくつかの問題が発生していました。すべてが機能しています。みんな、ありがとう。私はすべての素晴らしいフィードバックに感謝します

    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <cmath>

    using namespace std;

    int main()
    {
        // Initialize objects:

            double angle = 0.0;
        double velocity = 0.0; 
        double range = 0.0;
        const double PI = 3.141592653589793238;
        const double gravity = 9.8; //meters pers second

        // Input:

        cout << "takeoff angle: ";
        cin >> angle;
        cout << "Please enter velocity: ";
        cin >> velocity;

        // Process

        angle = angle * PI / 180;
        range = sin(2 * angle) * velocity * velocity / gravity;

        cout << " range " << range << endl;
        system("pause");

        return 0;

}
4

2 に答える 2

2
range = sin(* angle)*velocity pow(2);

これは有効な C++ ではありません。

pow2 つの引数を取る関数です。x^y は として表されpow(x, y)ます。

また、ポインタでも、演算子が定義されたクラスでもないため、sin(*angle)無効です。angle*

これがあなたが探しているものだと思います:

range = sin(2 * angle) * velocity * velocity / gravity;
// (No need to use pow(velocity, 2) over velocity * velocity)

(これは範囲の正しい式です)

于 2013-05-20T00:10:01.347 に答える
0

double として定義angleしたため、 と記述して逆参照したくありません*anglepow()は 2 つの引数を取るので、おそらく と書きたいでしょうpow(velocity,2)sin(angle)*pow(velocity,2)動作するはずです。を計算するだけの場合はsin(angle)*velocity*velocity使用する必要がないため、 をお勧めします。pow(x,2)x*x

velocity*9.8ああ、速度が 0.0であると定義されているため、コードでは重力が 0.0 であることに注意してください。

于 2013-05-20T00:09:26.433 に答える