stackoverflow。我是C++的新手,我最後一個問題是我的任務。我正在嘗試編寫一個程序,用於計算物體從基礎高度落下時的速度,並將該信息顯示爲物體的高度與其下降的時間量(以秒爲單位)。這是我的代碼至今:C++:嵌套的if循環無法正常結束的問題
#include <stdio.h>
int main() {
int acceleration, altitude, time;
double distance;
acceleration = 32;
time = 0;
printf("What is the altitude you are dropping your object from?\n");
scanf("%d", &altitude);
printf("Time Altitude\n");
while (altitude > 0){
distance = ((0.5 * acceleration) * (time * time));
altitude = altitude - distance;
printf("%d %d\n", time, altitude);
time++;
if (altitude <= 0){
altitude = 0;
}
}
return 0;
}
我知道距離的公式稍微偏離,但我此刻的我更關心的是,程序不打印出的0時的高度物體撞到地面。相反,它打印出-104,由於負距離無法實現,我想解決這個問題。
所以我的問題是這樣的:我的while循環/嵌套的循環是什麼問題導致程序而不是循環打印出0表中的最後一項?
強烈建議:逐步調試下的代碼,並觀察循環迭代時「高度」和「距離」如何變化。我認爲你會很快發現這個問題;) – paulsm4 2012-02-28 04:27:22
'距離=((0.5 *加速度)*(時間*時間));''自'時間= 0'後總是計算爲'0'。 – 2012-02-28 04:27:53
如果您希望程序不打印負數,請將您的條件('if'語句)移到'printf()'之前。 – chrisaycock 2012-02-28 04:28:11