1

私はこのコードを持っています。

 for(int j=0; j<=n; j++) {
     Xnew2 = j*(Y+R2)/n;
     Ynew2 = pow((((Y+R2)*(Y+R2)) - (Xnew2*Xnew2)), 0.5);
     cout<<"\n("<<Xnew2<<","<<Ynew2<<")"; 
 }

すべての値を表示したいのですが、表示される値に制限を設けて、Ynew2310 を超えたり、-310 を下回ったりしないようにしたいと考えています。Radius は 482.7mm で、これは値が現在進行中の数値です。

どうすればいいですか?その中にループを入れようとしifましたが、うまくいきませんでした。何か助けはありますか?

4

3 に答える 3

1

これを試して:

for(int j=0; j<=n; j++) {
    Xnew2 = j*(Y+R2)/n;
    Ynew2 = pow((((Y+R2)*(Y+R2)) - (Xnew2*Xnew2)), 0.5);

    if(abs(Ynew2) <= 310))
        cout<<"\n("<<Xnew2<<","<<Ynew2<<")"; 
}

この関数を使用しabsて変数の絶対値を取得し、Ynew2310と比較します。310以下の場合はポイントを表示し、そうでない場合は表示しません。

\n補足:使用および使用を避ける必要がありますstd::endl(またはendl適切なusing宣言がある場合のみ)。

于 2013-03-20T22:44:34.803 に答える
0
   const int YLIMIT = 310;
   for(int j=0; j<=n; j++) {
       Xnew2 = j*(Y+R2)/n;
       int Ynew2Raw = pow((((Y+R2)*(Y+R2)) - (Xnew2*Xnew2)), 0.5);
       int Ysign = Ynew2Raw >= 0 ? 1 : -1;
       int limitedY2 = std::min(abs(Ynew2Raw, YLIMIT));
       Ynew2 = Ysign * limtedY2;

       cout<<"\n("<<Xnew2<<","<<Ynew2<<")"; 
   }
于 2013-03-20T23:43:28.200 に答える
0
for(int j=0; j<=n; j++)
{
    Xnew2 = j*(Y+R2)/n;
    Ynew2 = pow((((Y+R2)*(Y+R2)) - (Xnew2*Xnew2)), 0.5);
    if (Ynew2 < 310 && Ynew2 > -310)
        cout<<"\n("<<Xnew2<<","<<Ynew2<<")"; 
}
于 2013-03-20T22:00:57.833 に答える