问题描述
为什么我的循环打印每个结果,即使我没有使用 printf。 这是我的编码。结果打印为每个执行循环的矩阵
r1=0.963;
r2=0.764;
r3=0.528;
r4=1.815;
r5=0.778;
phi1=0*(pi/180);
phi2l=0*(pi/180);
phi2u=90*(pi/180);
phi2ro=90*(pi/180);
printf(" phi-1 phi-2 phi-3 x-p y-p\n");
printf("--------------------------------------------------\n");
do
phi2r=((phi2l+phi2u)/2); #CALculaTE PHI2R
fphi2l=((r1*cos(phi1)+r2*cos(phi2l)-r4)^2+(r1*sin(phi1)+r2*sin(phi2l))^2-(r3^2)); #EXECUTE FUNCTION USING PHI2L
fphi2r=((r1*cos(phi1)+r2*cos(phi2r)-r4)^2+(r1*sin(phi1)+r2*sin(phi2r))^2-(r3^2)); #EXECUTE FUNCTION USING PHI2R
check=fphi2l*fphi2r; #CALculaTE VALUE FOR CONDITION
if(check<0)
{
phi2u=phi2r;
}
endif
if(check>0)
{
phi2l=phi2r;
}
endif
error=abs(phi2r-phi2ro)/phi2r; #CALculaTE ERROR
phi2ro=phi2r;
until(error<10^-8)
phi2=phi2r;
phi3=asin((r1*sin(phi1)+r2*sin(phi2))/r3);
phi3c=acos((r1*cos(phi1)+r2*cos(phi2)-r4)/r3);
解决方法
您的 if 块中有语法“错误”。在八度中,您不需要将 if“块”括在大括号中。您所写的内容有效地将该任务包装在一个“单元格”中。并且因为“单元格”语句没有以分号结束(注意分号在单元格内!),结果单元格会打印在终端上。
你可以这样做:
if check > 0
phi2l = phi2r;
endif