用迭代法求x=sqrt(a)。求平方根的迭代公式为
要求前后两次求出的x的差的绝对值小于10^(-5)
#include<stdio.h> int main() { float x1,x2,a;
scanf("%f",&a); x1=a; x2=(x1+a/x1)/2; while(fabs(x1-x2)>=1.e-5) { x1=x2; x2=(x2+a/x2)/2; } printf("%f",x2); }
。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int main(void) { float x_n,x1=0,a,t;//xn x(n+1) 第一次数字 t差值 puts("请输入要求平方根的数(正数)"); scanf("%f", &x_n); a = x_n; t = x_n; while (t>=0.00001) { x1 = (x_n + a / x_n) / 2; t = x_n - x1; x_n = x1; } printf("sqrt(%f)=%f", a,x_n); return 0; }
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> int main() { double a; scanf("%lf",&a); double x=a; while(1) { double zancun=0.5*(x+a/x); if(fabs(zancun-x)<1e-5) break; else x=zancun; } printf("%f\n",x); }
#include &l...
用户登录可进行刷题及查看答案
#include <stdio.h> #include <math.h> int main() { float a, x0, x1; printf("请输入一个正数: "); scanf("%f", &a); x0 = a / 2; x1 = (x0 + a / x0) / 2; do { x0 = x1; x1 = (x0 + a / x0) / 2; } while (fabs(x0 - x1) >= 1e-5); printf("[%f] 的平方根为 [%f]\n", a, x1); return 0; }
登录后提交答案