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ループ/ネストされたifループで何が問題なのですか?ではありませんテーブルの最後のエントリには0が出力されますか?
強力な提案:デバッガの下のコードをステップ実行し、ループの繰り返しに従って "高度"と "距離"がどのように変化するかを見てください。 – paulsm4
'distance =((0.5 * acceleration)*(time * time));'は常に '0'since' time = 0'に評価されます。 –
プログラムが負の数値を出力しないようにするには、条件付き( 'if'文)を' printf() 'の前に移動します。 – chrisaycock