我一直在試圖通過式V來計算衛星的速度= -1/2 * GMM/R 用C++它編譯成功,但得到的所有輸入後它模具沒有顯示結果,並終止突然。我試圖通過重新編寫代碼來解決問題,但都是徒勞的。計算衛星速度用C++,邏輯錯誤
#include <iostream>
using namespace std ;
#define G 6.672
float calculate(float , float , float) ;
int main(void)
{
float aa ;
aa = (1/2) ;
cout << aa ;
cout << "Total energy of satellite " << endl ;
float ene ,m , M , r ;
cout << "Enter masses and radius " << endl ;
cin >> m ;
cout << "2nd mass" << endl ;
cin >> M ;
cout << "radius " ;
cin >> r ;
ene = calculate(m ,M , r);
cout << ene ;
return 0 ;
system("PAUSE") ;
}
float calculate(float a , float b , float c)
{
float result ;
result = 0.5 * (G * a * b)/c ;
return result;
}
您是否嘗試打印M,M和R?如果r是0,你會得到一個除法0. PS:可怕的變量命名約定m和M?我知道這是可能的,但它使得難以閱讀/維護代碼。 – John3136
它終止,因爲你有返回後的系統(「暫停」)。它永遠不會被調用,程序在打印輸出後終止。 – arne
作爲一個附註,你的行'aa =(1/2)'相當於'aa = 0',因爲1/2是一個整數除法,只有在這之後你才能得到浮點數。見(http://stackoverflow.com/questions/8906722/c-programming-division)。 – mars