堆栈溢出。我是C++的新手,我的作业还有最后一个问题。我正在尝试编写一个程序,计算一个物体从基准高度下落的速度,并将该信息显示为物体的高度与下落的时间(以秒为单位)。这是我目前掌握的代码:
#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?
最佳答案
打印前改变高度。
while (altitude > 0){
distance = ((0.5 * acceleration) * (time * time));
altitude = altitude - distance;
if (altitude <= 0){
altitude = 0;
}
printf("%d %d\n", time, altitude);
time++;
}