gpt4 book ai didi

C++ 逻辑问题

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:06 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的 C++ 程序,该程序在达到特定点后输出对象的当前高度。我想要完成的目标是你有一个物体,它从一个不同的位置开始,并在附加重力的情况下以随机速度移动。如果球与墙壁或其他物体碰撞,它应该向后移动,没有能量损失,但由于重力仍会继续下落。球达到特定高度后,输出该值。

现在,我现在要做的就是检查我的球是否超出了我的宽度范围。但是对于我的生活,我不明白为什么我最后一个 if 语句在底部不会调用。

我是不是错过了/做了一些非常愚蠢的事情?

  int _tmain(int argc, _TCHAR* argv[])
{

float velocity;
float height, targetHeight;
float gravity;
float time;
float angle;
float width;
float move;
float distance;

gravity = 9.80f;
time = 0;
distance = 0;

cout << "Set Height\n";
cin >> height;

cout << "Set target height\n";
cin >> targetHeight;

cout << "Set Angle ( 0 - 90 ): \n";
cin >> angle;
angle *= 3.14 * 180; // convert to radians

cout << "Set velocity (0 - 100): \n";
cin >> velocity;

cout << "Set Play field Width: \n";
cin >> width;


while( height >= target )
{
time++;
distance += velocity * cos(angle) * time;
height += (velocity * sin(angle) * time) - (gravity * pow(time, 2) ) / 2;
}

if( distance == width)
{
cout << "You've hit the wall\n";
}

return 0;
}

最佳答案

您的最终 if 语句 if( distance == width ) 不会测试距离是否超出宽度。您可能需要 if( distance >= width )。似乎没有对您的运动循环中行进的距离进行任何测试,因此距离很容易大于宽度,从而导致您的 if 不成立。

关于C++ 逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com