#include<stdio.h>
#include<math.h>
int main()
{
double a=0,b=0,c=0,o,p,q,m,n,f,i=0;
do{
i++;
o=a ;
p=b;
q=c;
a=(10+5*q)/9;
b=(4*o+3*q-8)/10;
c=(5*o+12*p)/20;
n=fabs(a-o);
m=fabs(b-p);
f=fabs(c-q);
}
while(n>=0.001 && m>=0.001 && f>=0.001);
printf("%f %f %f %f %f %f %f",a,b,c,m,n,f,i);
return 0;
}
开始时,opq都等于0
a = 10/9 = 1.111111;
b =-0.8;
c= 0/20 = 0.00;
n = fabs(a-o) = a = 1.111111
m=fabs(b-p)=0.8
f=fabs(c-q)=0;
所以while中的f >= 0.001不满足条件,结束循环
b=(4*0+3*0-8)/10
c=(5*0+12*0)/20
do....while循环执行第一次就没通过