我試圖編寫一個程序,它可以通過角度來運行彈射器可以從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