我试图编写一个程序,它可以通过角度来运行弹射器可以从0-90拍摄的距离,并计算每个导致的距离。当角度比最后一个距离更远时,它应该取代一个名为“bestAngle”的变量中的上一个角度。这是我到目前为止有:如何替换C++循环中的旧值?
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double g = 9.8;
double v,a,d,bestAngle;
for(a=0; a<=90; ++a){
double rad = a*3.14159/180;
if(a<=30){
v=45;
}else if(a>30 && a<=60){
v = 40;
}else{
v=30;
}
d = pow(v,2)*sin(2*rad)/g;
double bestAngle = 0;
double bestAngleRad = bestAngle*3.14159/180;
if(d>pow(v,2)*sin(a*bestAngleRad)/g){
bestAngle = a;
bestAngleRad = bestAngle*3.14159/180;
}
}
cout << bestAngle << endl;
}
我认为这个问题有什么做的最后一个if语句,我认为最好的角度是没有更新。我不希望任何人告诉我该怎么做,但如果有人能指出我错误的位置会有所帮助。
不要在这里发布代码的图片。 – rsp
您有两个名为'bestAngle'的变量。这会让你感到困惑。 –
请给我们一些格式正常的文本格式代码 – Valentin