【问题标题】:using while loop for determining square roots of numbers c++使用while循环确定数字的平方根c ++
【发布时间】:2017-12-06 16:36:08
【问题描述】:

我正在运行一个 c++ 程序,使用 while 循环来确定数字的平方根,在这里我已经定义了变量,尝试过但似乎没有什么对我有用,任何人都可以帮助我。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
 int n=10, N=0, i=0;

 while(i<5)
 N=i*n;
 cout<<"numbers ="<<"\t Square root="<<sqrt(N)<<endl;
 return 0;      
}

程序执行成功,但没有显示(空行)。谢谢。

【问题讨论】:

  • 你希望这个程序做什么?你能用你自己的话描述每一行的作用吗?你知道它应该做什么吗?提示:在这种形式下,程序甚至不会终止,i&lt;5 始终为真。
  • 解决此类问题的正确工具是调试器,而不是求助于 SO。阅读How to debug small programs (by Eric Lippert)
  • forwhile 之后,您应该将循环括在大括号{} 中。在这里,您的循环由一行组成:N=i*n; 另外,@riodoro1 所说的内容。
  • 不清楚代码的哪一部分应该在循环内。您知道您将迭代 5 次,因此请使用 for 循环。
  • while (i &lt; 5) N = i*n; 是一个无限循环,因为i 为零,并且永远不会改变。写入cout 的语句是在无限循环之后,所以永远不会到达。

标签: c++ while-loop sqrt


【解决方案1】:

只需在循环中添加花哨的括号,然后检查要更改 i 和 n 的位置。

【讨论】:

    【解决方案2】:
    while(i<5)
    N=i*n;
    

    因为你没有缩进或使用括号,你可能错过了这一点,等于:

    while (i < 5) {
        N = i * n;
    }
    

    因为语言指定没有括号意味着您只需将其应用于下一条语句并继续循环。

    所以这只是永远循环,因为i 永远不会超过 5 以退出循环。

    【讨论】:

    • 谢谢,你的想法很重要
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2013-05-20
    相关资源
    最近更新 更多