【发布时间】:2012-09-19 00:27:00
【问题描述】:
我有一个家庭作业要交,我的循环有问题。我首先必须通过我已经可以做的循环找到下一个最高和最低的平方根。接下来我的作业告诉我,我需要通过平均整数的下一个最高和最低平方根来获得平方根的近似值。然后我必须询问用户他们想要的小数位数。这是作业的引述:
然后应该构造一个计数控制的循环;它将为每个所需的小数位执行一次;在示例中,此循环将执行四次(十位、百位、千位和千位小数位各执行一次)。使用诸如decimalPosition 之类的计数器来跟踪循环处于哪个阶段。
这是我遇到问题的地方,我正在使用基于用户输入的小数位数的 while 循环,但我的循环没有完成循环。我是编程新手,所以如果这真的很简单,请原谅我。这是我的while代码:
for (int decimalPosition = 1; decimalPosition <= decimal; decimalPosition++)
{
while (baseRoot*baseRoot > num)
{
baseRoot = baseRoot - (pow((.1),decimalPosition));
cout << fixed << setprecision(decimal) << baseRoot << endl;
}
}
这是我目前的输出
Enter a number you wish to know the square root of: 8
Enter the number of decimal places of accuracy you want: 7
Find the square root of 8 to 7 decimal places:
2.6000000
2.7000000
2.8000000
2.9000000
2.9000000 square root of 8.0000000
【问题讨论】:
-
你能删除作业标签吗 - 它已被弃用
-
@AdrianCornish 认为它现在不见了,反正我现在看不到了 :)
-
当然,你意识到你所拥有的“到目前为止”是完全不正确的。这不是小数点后 8 到 7 位的平方根。
-
我确实意识到了这一点,这就是我之前提出这个问题的原因,但后来我发现我的问题是计数控制循环出现故障。感谢所有试图帮助我的人!
标签: c++ algorithm math square-root