C编程: wrong output?

标签 c

大家好,我正在努力解决这个问题

编写一个 C 程序,计算弹丸在撞击地面之前行进的距离(即射程)、弹丸撞击地面所需的时间以及弹丸飞行中的最大高度(给定角度)它被射向空中,以及发射时的初始速度(速度)。我们假设地面是平坦的,唯一存在的力是重力(没有空气阻力等)。

Maximum height: h=pow(v*sin(θ),2)/2*g;
Time in air: t = (2*v*sin(θ))/g;
Range: r = (2*pow(v,2)*sin(θ)*cos(θ))/g;



θ = angle that the projectile is launched (in whole degrees)
v = initial velocity of the projectile (in meters/second)
g = acceleration due to gravity = 9.8 meters/second2

现在我不知道为什么我得到负面结果。我想我使用了错误的声明语法,或者我对角度和初始速度给出了错误的输入,或者是因为除法是四舍五入的。有人可以帮我找出解决这个问题的正确方法吗? (我是 C 编程新手,我想学习)

最佳答案

正确的公式如下

Maximum height: h=pow(v*sin(θ*M_PI/180),2)/(2*g);
Time in air: t = (2*v*sin(θ*M_PI/180))/g;
Range: r = (2*pow(v,2)*sin(θ*M_PI/180)*cos(θ*M_PI/180))/g;

您甚至可以将 Range 公式简化为 pow(v,2)*sin(2*θ*M_PI/180)/g

as sin(2θ) = 2*sin(θ)*cos(θ)

来自 @Mat、@BLUEPIXY 和 @Sanhadrin 的评论

关于C编程: wrong output?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26440710/

相关文章:

代码厨师 :wrong answer error in smallfactorial

c - 在调试器中运行函数/方法

c - 链表初学者

c - 如何识别大型C项目中的“死c文件”?

c - 从地形 View 显示文本金字塔

c - 如何编写一个从文本文件读取数组并找到最大值和最小值的程序?

c++ - 下面的代码是否真的释放了 C/C++ 中的内存?

c - 从文件加载到链表

c - 为双指针 (char**) 声明和分配内存

c - 通过无线连接的两台计算机之间的信息交换