人に聞けない痔の悩み、これでスッキリ >>

プログラミングの勉強をして、詰まってしまいました。
以下のプログラムで間違っている原因を教えてください。

物体を初速度と仰角から水平到達距離を求めるのが目的です。
ビルドするとありえないくらいの大きな数になってしまいます。

よろしくおねがいします。


#include <math.h>
#include <stdio.h>

double hdist( double velocity, double angle){
double a,G,L;

a=3.14*angle/180;
G=9.8;
L=velocity*velocity*sin(2*a)/G;
return(L);
}

int main(void){
double na,nb;
puts("値を入力してください。");
printf("初速度 velocity(m/s):"); scanf("%f",&na);
printf("仰角 angle 度:"); scanf("%f",&nb);

printf("水平到達距離は%.2fmです。", hdist(na,nb));

return (0);
}

このQ&Aに関連する最新のQ&A

A 回答 (1件)

printf("初速度 velocity(m/s):"); scanf("%f",&na);


printf("仰角 angle 度:"); scanf("%f",&nb);

を、以下のようにする。

printf("初速度 velocity(m/s):"); scanf("%lf",&na);
printf("仰角 angle 度:"); scanf("%lf",&nb);

%fでは、引数は、floatのアドレスと仮定されるが、実際には、naもnbもdoubleなので。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

それで試してみます。

お礼日時:2013/11/18 01:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング