2016-08-26 19 views
0

半径の周りに(ではないが、必ずしも人が1を作った)衛星のためにかかる時間を見つけ出し式計算機を作るしようとしていて、彼が私を課さので、私のいとこは、天文学に大きなに起こっていますこの式T = SQRT(4 * piのPI R RのR/G * m)を実行する計算機を作成しています。十分に簡単に見えますか?それは私がそれを試してみるまで私が思ったものです。以下のoody変数は、それをデバッグしようとしたものです。 1つの事は、変数は間違いなくそのような長い変数を含んでいない別のものは答えが86,400で分割されなければならないと、そのような長い10進数の場合、コンピュータはそれが0と考えると、もしmが十分に大きくなければ、それは0の誤差による除算を与え、私はそれをどのように修正するか分からない。誰かが私にちょっとした助けを与えることができれば、それは大いに評価されるだろう。は、私はそれが私がC++を勉強してい

// OTM.cpp A very interesting program! 
#include "stdafx.h" 
#define _USE_MATH_DEFINES 
#include <cmath> 
#define _USE_MATH_DEFINES 
#include <math.h> 
#include <iostream> 
#include <string> 
#include <Windows.h> 


using namespace std; 

long double days(int m, int r, int g, int pi); 

int main() 
{ 
SetConsoleTitle(TEXT("Orbit Time Of The A Satelite 1.0")); 
long double t = 0; 
long double q = 0; 
const long double g = 0.000000000066726; 
long float m = 0; 
long float r = 0; 
double pi = M_PI; 

cout << "Hello welcome to OTM!" << endl; 

cout << "What is the mass of the host?" << endl; 
cout << "ENTER HERE: " << flush; 
cin >> m; 

cout << "" << endl; 

cout << "What is the radius of the object?" << endl; 
cout << "ENTER HERE: " << flush; 
cin >> r; 

cout << "" << endl; 
cout << pi << endl; 
cout << "The object is going " << days(m, r, g, pi) << " meters per second"  << endl; 
cout << t << endl; 
long double roody = pi * pi; 
long double goody = roody * 4; 
long double loody = r * r * r; 
long double moody = loody * goody; 
long double soody = m * g; 
long double voody = soody/moody; 
cout << roody << endl; 
cout << goody << endl; 
cout << loody << endl; 
cout << moody << endl; 
cout << soody << endl; 
cout << voody << endl; 

return 0; 
} 

long double days(int m, int r, int g, int pi) { 

long double t = sqrt(4 * (pi*pi) * (r*r*r)/(m * g)); 

long double q = t/86400; 

return t; 


} 
+0

:変数の命名にもう少し注意してください。 'roody'は読者に変数の目的について全く何も言わないので、誰でもデバッグが難しくなります。ここで宣言、割り当て、使用はすべて密接に結びついていますが、必ずしもそうであるとは限りません。 – user4581301

答えて

1

私は、コードをテストしていません、しかし確実にあなたはは、計算のためにここにint Sを使用したくないたのですか?

変更:あなたのニーズに応じて、floatまたはdoubleのいずれかに

long double days(int m, int r, int g, int pi) 

long double days(double m, double r, double g, double pi) 

に理解しておく必要がある主なものは、あなたがタイプfloatまたはdoubleへの変数を割り当てるときに何が起こるかでありますタイプintの変数。話題の勧告オフ

+0

ありがとうございました!私はこのコードを何時間もコーディネートしていますが、この感謝をもう一度見逃したとは信じられません。 – Lions654321

関連する問題