StackOverflow. Я новичок в 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 для последней записи в таблице?