��
 |
F0
= F(a); F1 = F(b);
if ( F0*F1 <= 0 ) {
�� X0 = a; X1 = b;
�� for (i = 1;i <= n;i++) {
��� Xm = (X0+X1)/2;
��� Fm = F(Xm);
��� if ( abs(Fm) < eps || abs(X1-X0)
< eps )
���� goto finish;
���� if (F0*Fm>0)
{ X0 = Xm;F0 = Fm;}
���� else X1 = X;
}
finish:printf("\n The root of this equation is %d\n",Xm);
}
|
 |
图4.2 函数F(x) 曲线
|
�� 这类循环结构出现了两个循环出口。一个是for循环的正常出口:当循环控制变量i超出了循环终值n时退出循环;另一个是for循环的非正常出口:当某种条件满足时,从循环中间某处转出循环,执行循环后面的语句。它不满足结构化的要求。做为对照,再看下面的两个程序段(程序段2和程序段3)。
|
|