#include #include #include int main() { int i; double precision = 1e-10 , x; printf("***輸入x值(x>0)計算平方根***\n"); printf("輸入x值=> "); scanf("%lf",&x); double mid , lower , upper; if(x<0){ printf("錯誤! X值不能<1"); return 1; } if(x>1){ lower=0 , upper=x , i=0; while (upper - lower > precision) { mid = (lower + upper) / 2.0; printf("#%d\t[%.10f,%.10f]\t解=%.10f\n",i+1,lower,upper,mid); i++; if (mid * mid > x) { upper = mid; } else { lower = mid; } } } if(x<1){ lower=x , upper=1 ,i=0; while (upper - lower > precision) { mid = (lower + upper) / 2.0; printf("#%d\t[%.10f,%.10f]\t解=%.10f\n",i+1,lower,upper,mid); i++; if (mid * mid > x) { upper = mid; } else { lower = mid; } } } printf("%f的平方根為%.10f\n",x,mid); printf("sqrt(%f)的結果為%.10f\n",x,sqrt(x)); return 0; }