69,369
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#define f(x) (x*x*x-2*x*x+3*x-4)
void main()
{ float a=-10,b=10,c,eps=1e-5;
while ((b-a)>eps)
{ c=(a+b)/2;
if(f(c)==0) break;
else if(f(a)*f(c)<0) b=c;
else a=c;
}
printf("root=%f\n",c); //printf("root=%f\n",(a+b)/2);
}
#include <stdio.h>
#include <math.h>
#define MIN_DIFF (1e-5)
#define FZERO (1e-6)
int main(void)
{
float a, prev, cur;
int i;
printf("Please input a number: ");
scanf("%f", &a);
if (fabsf(a) <= FZERO) {
printf("%f sqrt is %.5f\n", a, 0.0);
return 0;
}
prev = 1.0;
cur = (prev + a / prev) / 2;
for (i = 0; fabsf(cur - prev) >= MIN_DIFF; i++) {
prev = cur;
cur = (prev + a / prev) / 2;
}
printf("%.2f sqrt is %.5f\n", a, cur);
return 0;
}
迭代法求平方根