早教吧作业答案频道 -->其他-->
问一个C++迭代法求一个数平方根的问题我编的这个程序对大于1的数有用,对小数没有用.请问问题出在哪里.怎么破.#includeusingnamespacestd;doublemysqrt(doublea){doublex=(a>1?1:0),y=a,z;while(1){z=(x+y)/2;cout
题目详情
问一个C++迭代法求一个数平方根的问题
我编的这个程序对大于1的数有用,对小数没有用.请问问题出在哪里.怎么破.
#include
using namespace std;
double mysqrt(double a)
{
double x=(a>1?1:0),y=a,z;
while(1)
{z=(x+y)/2; cout
我编的这个程序对大于1的数有用,对小数没有用.请问问题出在哪里.怎么破.
#include
using namespace std;
double mysqrt(double a)
{
double x=(a>1?1:0),y=a,z;
while(1)
{z=(x+y)/2; cout
▼优质解答
答案和解析
如果一个数大于1,那么它的平方根肯定在1和它本身之间,你这么不停地迭代是可以的;
但是如果一个数小于1,那么它的平方根比它本身大,这个数字在它本身和1之间;而按你这句话:
double x=(a>1?1:0),y=a,z;
你把这个数字限制在了0和它本身之间,那再怎么迭代肯定也迭代不到结果了.
为了不改后面的程序,你只要把第一句改成这样就OK,把结果限制在0和1之间迭代.
double x=(a>1?1:0),y=(a > 1 a :1),z;
但是如果一个数小于1,那么它的平方根比它本身大,这个数字在它本身和1之间;而按你这句话:
double x=(a>1?1:0),y=a,z;
你把这个数字限制在了0和它本身之间,那再怎么迭代肯定也迭代不到结果了.
为了不改后面的程序,你只要把第一句改成这样就OK,把结果限制在0和1之间迭代.
double x=(a>1?1:0),y=(a > 1 a :1),z;
看了问一个C++迭代法求一个数平方...的网友还看了以下:
关于进一步提高英语水平的问题!请求英语高手请教!谢谢!刚中考完,英语水平还算可以,120分的能拿1 2020-05-14 …
请问Changeallfailtoexistfor请求英语高手帮忙翻译一下这句话的中文意思,(Ch 2020-05-14 …
英语翻译However,whatdowedowiththetimewehavesaved?Cert 2020-05-14 …
关于压缩空气管道计算的问题,请求专家解答,翻了很多规范书籍都没搞明白:现在有个终端用户需要100N 2020-05-17 …
高中英语几个词语的区别问题,请求帮助请问specially和especially的区别是什么?他们 2020-06-04 …
关于诉讼时效计算的问题2006年6月3日,甲向乙借款3万元。双方约定借款期限为1年。1年后,甲未还 2020-06-21 …
数学问题请求数学专家我有含绒量70%的绒和90%的鸭绒要把他配成80%的绒10斤请问要加多少70% 2020-06-25 …
假设你是高一学生李华,在英语学习中遇到了困难,心里很着急.请你结合本单元学习的词汇和句型用英语给英 2020-07-25 …
英语翻译我的帐户是AAAABBBB帐户是以前因为货币种类问题请求关闭了的.请开通AAAA关闭BBBB 2020-11-06 …
一些关于国际金融的问题,请求解答?!谢谢!一些关于国际金融的问题,请求解答?!1.具有经常账户赤字国 2020-11-07 …