我正在為學校的實驗室做這件事,但是,在我的代碼中,我得到了正確的輸出,但由于某種原因,我的輸入正在重復。我不確定他們為什么這樣做,并嘗試以幾種不同的方式編輯我的代碼以解決問題,但無濟于事。
這是我的原始代碼:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
const double PI = acos(-1); // arccos(-1) produces the value pi
double DirectTime (double rDestination) {
return 2.0 * sqrt(fabs(rDestination - 1.496e11) / 10) / 86400.0;
}
const double MU = 1.3274745e20;
const int SEC_IN_DAY = 86400;
const double R_EARTH = 1.496e11;
const double R_VENUS = 1.08e11;
const double R_JUPITER = 7.778e11;
const double R_PLUTO = 5.91e12;
double ConvertSecondsToDays(double seconds);
double CubedSum(double v1, double v2);
double HohmannTime(double r1, double r2);
double ConvertSecondsToDays(double seconds) {
double days = 0;
days = seconds / SEC_IN_DAY;
cout << days;
return days;
}
double CubedSum(double v1, double v2) {
return pow(v1 v2,3);
}
double HohmannTime(double r1, double r2 = R_EARTH) {
return ConvertSecondsToDays( PI * sqrt(CubedSum(r1, r2)/ (8 * MU)));
}
int main() {
printf("%-10s%-15s%-s\n", "Planet", "Hohmann Time", "Direct Time");
printf("%-10s%-15.2f%-.2f\n", "Venus", HohmannTime(R_VENUS, R_EARTH), DirectTime(R_VENUS));
printf("%-10s%-15.2f%-.2f\n", "Jupiter", HohmannTime(R_JUPITER, R_EARTH), DirectTime(R_JUPITER));
printf("%-10s%-15.2f%-.2f\n", "Pluto", HohmannTime(R_PLUTO, R_EARTH), DirectTime(R_PLUTO));
return 0;
}
當一切都說完并完成后,它應該輸出以下內容:
Planet Hohmann Time Direct Time
Venus 145.88 1.49
Jupiter 996.83 5.80
Pluto 16643.47 17.57
但是,我的一直輸出這個:
Planet Hohmann Time Direct Time
145.88Venus 145.88 1.49
996.503Jupiter 996.50 5.80
16643.5Pluto 16643.47 17.57
我在想問題要么是我為函式列印的內容,要么是我讓他們在某處重復輸出而沒有意識到。
聚苯乙烯
這是我關于堆疊的第一個問題。我聽說很多人問了不好的問題,所以如果我做錯了什么,請告訴我,這樣我才能做得更好!!
謝謝你的幫助!!
uj5u.com熱心網友回復:
問題是您的ConvertSecondsToDays函式無意中通過以下方式將其結果列印到標準輸出:
cout << days;
這種混雜與現實中完成輸出main。洗掉cout電話,你應該很好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384842.html
下一篇:撰寫R函式,僅在宣告時進行子集
