###c++について質問です.
数値aとbを入力するとa/bのアークコサインの値を求めるプログラムを学校で作っています.
以下のようにソースを作成し,実行してみると,a=1,b=2の時は1/2のアークコサインが求められるのですが,
a=1.5, b=3.0の時は1/3のアークコサインが求められてしまいます,
小数点が切り捨てられてるのだと思うのですが,小数点以下も考慮できるプログラムはどのようにすればよいのでしょうか.教えて頂けるとたすかります.
###実行結果
0.33333
acos(0.333333): 70.53°
###ソースコード
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double to_deg(double);
double pi();
int main(void) {
int a, b; double d; a = 1.5; b = 3.0; d = (double)a / (double)b; double d_rad, d_deg; printf("%.5f\n", d); // 逆余弦を取得 d_rad = acos(d); // 弧度法→度数法に変換 d_deg = to_deg(d_rad); // 結果表示 printf("acos(%.8f): %.2f°\n", d, d_deg); while (getchar()); return EXIT_SUCCESS;
}
double to_deg(double r) {
return r * 180.0 / (atan(1.0) * 4.0);
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。