2017-12-16 28 views
2

私はゲームのためにブックと呼ばれるC++モジュールから第3章(機能)の演習をしていました。 私ができないこの1つの質問は、書籍と私の電卓によると、63.42度を返すべきである(2,4)のatanf(4/2)を見つけることです。atanfは私に間違った答えを与えます

代わりに1.107度になります。ここで

は私のコードです:

#include "stdafx.h" 
#include <iostream> 
#include <cmath> 
using namespace std; 

void tani(float a,float b) //Finds the Tan inverse 
{ 
    float res; 
    res = atanf(b/a); 
    cout << res << endl; 

} 

int main() 
{ 
    cout << "Enter The Points X and Y: " << endl; 
    float x, y; 
    cin >> x >> y;      //Input 
    tani(x,y);       //calling Function 

} 
+1

cout << res * 180.0/M_PI << endl; 
'stdafx.h'このスニペットでは使用されません。混乱を避けるために質問を編集して削除してください。 – Mureinik

答えて

5

atanf、及び戻り結果の他の三角関数。 1.107ラジアンは63.426428度なので、コードは正しいです。

あなたは(<cmath>によって提供M_PI定数)を180で乗算およびPIで割ることにより度ラジアンに変換することができ:

+0

動作しますが、もう少し小さな問題です。 Cosf()では、Cos()の回答を乗算することで、度数で正解を得ることはできません。代わりに、入力を最初に変換してCosf()を適用する必要があります。任意のアイデアなぜTanf()のように動作しないのですか? –

1

それは程度にそれを変換し、あなたにradians.Simplyで正しい答えを与えています! radians

void tani(float a, float b) //Finds the Tan inverse 
{ 
    float res; 
    res = atanf(b/ a); 
    cout << res *(180/3.14) << endl; 
} 
関連する問題