Я пытаюсь написать этот код, который вычисляет конечную высоту и продолжительность полета для снаряда, в то время как пользователь должен предоставить значения для смещения, начальной скорости и угла запуска. Нет ошибок компиляции, но это скорее логическая ошибка, с которой я сталкиваюсь. Окончательное значение высоты полностью неверно, а также продолжительность. Кроме того, после того, как я ввожу угол запуска, он не сразу вычисляет высоту и время. Вместо этого мне нужно нажать клавишу «вниз», а затем «Ввод», чтобы рассчитать. Я вызываю компилятор [g cc -Wall -Werror -ansi -o task2.out task2. c -lm], за которым следует строка [./task2.out]
#include <stdio.h> /* access to scanf, printf functions */
#include <math.h> /* access to trignometric functions */
#define g 9.8 /* acceleration due to gravity constant */
int main(void){
double v, theta, t, x, h2;
/* v = initial velocity
theta = launch angle
t = time
x = horizontal displacement
h2 = final height
*/
printf("Enter range of projectile>");
scanf("%lf", &x); /* assigned x as a long float */
printf("Enter velocity>");
scanf("%lf", &v); /* assigned v as a long float */
printf("Enter angle>");
scanf("%lf", &theta); /* assigned theta as a long float */
scanf("%lf", &t); /* assigned t as a long float */
t = x/v*cos(theta); /* formula for time */
scanf("%lf", &h2); /* assigned h2 as a long float */
h2 = (t*v*sin(theta)) - (0.5*g*t*t); /* formula for height */
printf("Projectile final height was %.2lf metres./n", h2);
printf("Projectile duration was %.2lf seconds", t );
return 0;
}