Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “无限”;“真的”;while循环_C++_Loops_Infinite Loop - Fatal编程技术网

C++ “无限”;“真的”;while循环

C++ “无限”;“真的”;while循环,c++,loops,infinite-loop,C++,Loops,Infinite Loop,我知道我可能只是做了一些愚蠢的错误,但我需要从用户那里获取一个数字,创建一个2的倍数的无限循环(通过使while语句为true)。我得到了将用户的数字乘以自身的数学公式,但我无法让它循环。这是我这周作业的最后一部分,我的大脑被炸了,所以我不知道哪里出了问题 任何帮助都将是惊人的!以下是我所拥有的: #include <iostream> using namespace std; int main (int argc, const char * argv[]) { int

我知道我可能只是做了一些愚蠢的错误,但我需要从用户那里获取一个数字,创建一个2的倍数的无限循环(通过使while语句为true)。我得到了将用户的数字乘以自身的数学公式,但我无法让它循环。这是我这周作业的最后一部分,我的大脑被炸了,所以我不知道哪里出了问题

任何帮助都将是惊人的!以下是我所拥有的:

#include <iostream>

using namespace std;

int main (int argc, const char * argv[])
{
    int d;
    int e;
    cin >> d;
    while (true)
    {
        e = d * d;
    }
        cout << e << ", ";
}
#包括
使用名称空间std;
int main(int argc,const char*argv[]
{
int d;
INTE;
cin>>d;
while(true)
{
e=d*d;
}

cout正如所写,您的代码将永远循环,因此,它将永远不会到达该cout语句。也许您希望将cout语句放入循环体中,以便打印变量?

在:
cout处存在无法访问的代码,可能的解决方案之一是:

int main (int argc, const char * argv[])
{
    int d;
    int e = 2;
    cin >> d;
    while (d>0)
    {
       cout << e << ", ";

       e = e * 2;
       d--;
    }
}
int main(int argc,const char*argv[]
{
int d;
int e=2;
cin>>d;
而(d>0)
{

你的意思是说“我需要从用户那里获取一个数字,创建一个无限循环,显示2的倍数吗?”“因为你肯定得到了这个循环,它只是不给你任何东西。+ 1,因为这是HOOWORK。”(本杰明:是的:-)这正是我想说的!Mehrdad -谢谢!我认为完全诚实是最好的策略当求救!- -也许我只是不够熟练的C++,但不会在第一个初始化。循环的迭代?哎呀。我误读了。我以为它是:'d=e*d'。我将删除该部分。谢谢。FWIW,它可能最终应该读取
d=e*d
(或类似的东西。)代码(原样)威尔永远循环,一遍又一遍地重复相同的乘法。所以如果它在while循环内,那么它就不能从外部读取?我以为我用e=d*d初始化了它,但似乎我没有!你确实初始化了它。我犯了一个错误,我删除了它。啊,是的!我应该让它永远运行,只要打印结果就行了!谢谢!我把cout移到了循环中,它只是一遍又一遍地显示相同的数字。我需要它像“2,4,8,16,32”这样读出。我离得太近了!@audiedogie正如Chris Lutz在下面提到的,你需要在循环外初始化e,然后将你的语句改为
e=e*d
(或者
e*=d
,以保持冷静)试着不要用勺子给家庭作业问题的答案。除此之外,你似乎误解了这个问题。你的程序打印的是2的连续幂。原始海报想要打印特定数字的连续倍数2。