ユーザーが度単位で指定した角度の正弦と余弦を小数点以下 6 桁の精度で計算する小さなプログラムを作成しようとしています。
こんなふうになります:
入力(角度)
90
出力 (正弦余弦)
1.000000 0.000000
しかし、いくつかの問題があります。たとえば、ユーザーが-850を入力すると、プログラムは次のように返します。
-1.000000 -0.000000
-0.000000に注意してください。これを回避するクリーンな方法はありますか? それは本当に単純でなければなりませんが、私はそれを逃しています。
ところで、きれいな方法で、私は次のようなものよりもきれいであることを意味します
if(angle > -0.000001)
{
angle = 0.000000;
}
コードは次のとおりです。
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
float angle;
while(1)
{
cin >> angle;
if(cin.eof())
{
return 0;
}
angle = angle*M_PI/180.0;
cout << fixed << setprecision(6) << sin(angle) << " " << cos(angle) << endl;
}
return 0;
}
ご清聴ありがとうございました。