do while语句循环#include#includeint 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;}这个程序无法执行而下面的程
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 11:48:54
do while语句循环#include#includeint 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);
\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语句循环#include#includeint 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就是先执行的,只是输入不当会导致死循环吧.
\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就可以了.