我有这个代码。
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<<")";
}
我希望显示所有值,但我还想对显示的值创建限制,以确保Ynew2
不能高于310或低于-310。半径为482.7mm,这是当前值的数字。
我该怎么做?我尝试在其中放置一个if
循环,但它不起作用,我尝试的任何其他东西只给了我一个值。有什么帮助吗?
答案 0 :(得分: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
函数来获取Ynew2
变量的绝对值,并将其与310进行比较。如果它小于或等于310,我们会显示该点,否则,我们不会“T
旁注:如果您有适当的\n
声明,则应避免使用std::endl
并使用endl
(或仅使用using
。
答案 1 :(得分: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<<")";
}
答案 2 :(得分: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<<")";
}