作业帮 > 综合 > 作业

do while语句循环

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 06:37:42
do while语句循环
#include
#include
int main()
{
\x09double a,x1,x2;
\x09scanf("%lf",&a);
\x09do
\x09{
\x09\x09x1=a/2;
\x09\x09x2=0.5*(x1+a/x1);
\x09}
\x09while(fabs(x1-x2)>=1e-5);
\x09\x09printf("x=%f",x2);
\x09return 0;
}
这个程序无法执行而下面的程序可以执行,do while循环不是先执行后判断吗?哪里错了?谢谢
#include
#include
int main()
{
\x09double a,x1,x2;
\x09scanf("%lf",&a);
\x09x1=a/2;
\x09\x09x2=0.5*(x1+a/x1);
\x09do
\x09{
\x09\x09x1=x2;
\x09\x09x2=0.5*(x1+a/x1);
\x09}
\x09while(fabs(x1-x2)>=1e-5);
\x09\x09printf("x=%f",x2);
\x09return 0;
}
do while就是先执行的,只是输入不当会导致死循环吧.
\x09double a,x1,x2;
\x09scanf("%lf",&a);
\x09do
\x09{
\x09\x09x1=a/2;           //x1固定为a/2
\x09\x09x2=0.5*(x1+a/x1); //x2固定为a/4 + 1
\x09}
\x09while(fabs(x1-x2)>=1e-5); //x1 - x2固定为fabs(a/4 -1)
\x09\x09printf("x=%f",x2);要想跳出循环,fabs(a/4 -1) < 0.00001,那么a输入4就可以了.