[英]C++ If loop inside a for loop. Limits
我有这个代码。
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
循环,但是它没有用,而我尝试的其他任何操作仅给了我一个价值。 有什么帮助吗?
尝试这个:
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,则显示该点,否则不显示该点。
旁注:您应避免使用\\n
并使用std::endl
(如果您有适当的using
声明,则应仅使用endl
)。
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<<")";
}
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<<")";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.