|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
用do-while型写
#include<stdio.h>
#include<math.h>
int main(){
float x0,x,f,f1;
printf("请输入一个近似解:\n");
scanf("%f",&x);
do{
x0=x;
f=((2*x-4)*x+3)*x-6;
f1=(6*x-8)*x+3;
x=x-f/f1;
}while(fabs(x-x0)>=1e-5);
printf("牛顿迭代公式求得的近似解:%.4f\n",x);
return 0;
}
输入1.5
输出2.0000
用while型写
#include<stdio.h>
#include<math.h>
int main(){
float x0,x,f,f1;
printf("请输入一个近似解:\n");
scanf("%f",&x);
x0=x;
while(fabs(x-x0)>=1e-5){
f=((2*x-4)*x+3)*x-6;
f1=(6*x-8)*x+3;
x=x-f/f1;
}
printf("牛顿迭代公式求得的近似解:%.4f\n",x);
return 0;
}
输入1.5
输出1.5000
想问下为什么输出的不一样。是while型哪里写错了嘛?
我知道do-while是先首先执行语句即循环体
- #include<stdio.h>
- #include<math.h>
- int main(){
- float x0,x,f,f1;
- printf("请输入一个近似解:\n");
- scanf("%f",&x);
- while(1){
- x0=x;
- f=((2*x-4)*x+3)*x-6;
- f1=(6*x-8)*x+3;
- x=x-f/f1;
- if (fabs(x-x0)<1e-5) break;
- }
- printf("牛顿迭代公式求得的近似解:%.4f\n",x);
- return 0;
- }
复制代码
|
|