为什么这个简单的程序不起作用?

时间:2015-09-21 10:54:32

标签: c++ loops

#include <iostream>
#include <conio.h>
int main()
{
    int i;
    for (i = 1; i = 100; 1 + 1);
    {
        std::cout << i << " = " << i *i << std::endl;
    }
    do 
    {
        std::cout << i << " = " << i *i << std::endl;
    } while (i = 100)
    getch();
}

为什么这根本不起作用。从1到100给出立方体数量的数字是很明显的,它只是打开而没有任何反应。有人可以帮忙吗?我只是一个初学者,我无法解决这个问题。感谢

5 个答案:

答案 0 :(得分:4)

你有很多错误,例如

for ( i = 1 ; i = 100 ; 1+1 ) ;

应该是:

for ( i = 1 ; i <= 100 ; i += 1 )

(请注意删除迷路;以及其他更改。

此外:

while ( i = 100 )

应该是:

while ( i <= 100 );

(请注意添加了遗失;以及从=<=的更改。

您可能还想在i循环之前重新初始化do,并在循环中递增它:

i = 1;
do 
{
    std::cout << i << " = " << i * i << std::endl;
    i += 1;
} while (i <= 100);

答案 1 :(得分:1)

do-while-loops用分号终止。

要增加您的价值,必须写i=i+1i+=1++ii++而不是1+1

你的for循环结束时有一个半圆形,这使循环什么都不做。

只要i = 100始终为真,您就在运行循环。我也怀疑你是i == 100,因为它总是错误的。你最好写i < 100i <= 100(对于for-和while-loop)

您不要在循环之间重置i

最后但并非最不重要的是,你不会在while循环中增加i。所以这个循环将永远或永远运行,因为i永远不会改变。

#include <iostream>
#include <conio.h>
int main()
{
    int i;
    for (i = 1; i <= 100; ++i)
    {
        std::cout << i << " = " << i *i << std::endl;
    }
    i = 1; //Reset
    do 
    {
        std::cout << i << " = " << i *i << std::endl;
        i++;
    } while (i <= 100);
    getch();
}

我希望我能得到这一切。

答案 2 :(得分:0)

你的for循环中的

1+1是问题所在。你陷入无限循环。你永远不会增加i因此它永远不会达到100而永远不会退出for循环。 其他答案中也有第二个错误。将for-loop i = 100更改为1 <= 100

答案 3 :(得分:0)

#include <iostream>
// delete because this is unneeded and emits error on some compilers
//#include <conio.h>
int main ()
{
    int i  ;
    for ( i = 1 ; i <= 100 ; i++ ) // fix second and third expression and remove junk semicolon
    {
        std :: cout <<  i  << " = " << i *i << std :: endl ;
    }
    i = 1; // add
    do {
        std :: cout <<  i  << " = " << i *i << std :: endl ;
    } while ( (++i) <= 100 ); // change = to <=, update i and add semicolon
    // delete because this is unneeded and emits error on some compilers
    //getch () ;
}

答案 4 :(得分:0)

你的for循环错了,你可能想要

#include <iostream>
#include <conio.h>
int main ()
{
    int i  ;
    for ( i = 1 ; i < 100 ; i++ )
    {
        std :: cout <<  i  << " = " << i *i << std :: endl ;
    }

    getch () ; //no clue what this is, but you probably know
}