#include<iostream>
#include<cmath>
using namespace std;
double bisection(double errorVal, double userNum){
double upper=userNum, lower=0;
double mid=(lower+upper)/2.0;;
while(mid*mid!=userNum){
double mid=(lower+upper)/2.0;
if(mid*mid>userNum){
upper=mid;
} else {
lower=mid;
}
}
return mid;
}
int main(){
double errorVal=0, userNum=0;
std::cout<<"Please enter a number (larger than 0) to calculate its square root, and the desired margin of error."<<std::endl;
std::cin>>userNum>>errorVal;
bisection(errorVal,userNum);
std::cout<<"The calculated result is "<<bisection(errorVal,userNum)<<". The error is "<<abs(bisection(errorVal,userNum)-sqrt(userNum))<<"."<<std::endl;
}
これは、二分法で入力された数値の平方根を求めるために書いたプログラムです。私は2つの入力パラメータを入力しても出力が得られないので、ここで何か間違っていなければなりません。二分法で数値の平方根を見つけようとする問題
許容誤差を指定するために、errorVal
を正しく実装する方法も知りたいと思います。ありがとう。
もう一つ: ''数(0より大きい)を入力してください、あなたは0と1の間の数字を入力しようとしています、(0,1)? – Stefan