检查循环

时间:2012-09-22 15:57:51

标签: c++ loops for-loop

#include <stdio.h>
#include <conio.h>
void main()
{
    clrscr();
    int lop, squr;
    for (lop=1; lop<=20; lop=lop+1);
    {
        squr = lop*lop;
        printf("%5d,%5d,\n",lop,squr);
    }
    getch();
}

我的朋友说的是这个源代码运行良好..但它在我身边运行不佳。我应该怎么做才能在C ++中很好地工作。

我的朋友告诉我,上面提到的代码在他正在使用的版本中运行良好。我说,这段代码不正确,会给出执行错误....上面提到的代码对于任何标准或版本的C / C ++都是正确的。

并告诉我有多少版本的C ++可用...

此致

2 个答案:

答案 0 :(得分:6)

for (lop=1; lop<=20; lop=lop+1);是问题所在。更改为for (lop=1; lop<=20; lop=lop+1)(删除分号将使其工作)。

这是您的代码,问题已修复并优化:

#include <stdio.h>
#include <conio.h> // Remove if you want

int main() {
    clrscr(); // Remove if you want
    int lop, squr;
    for (lop=1; lop<=20; ++lop) {
        squr = lop*lop;
        printf("%5d,%5d,\n", lop, squr);
    }
    getch(); // Remove if you want
    return 0;
}

可以删除// Remove if you want行,但会改变行为。见@ VinayakGarg的评论。

答案 1 :(得分:6)

应该如何 -

#include <stdio.h>

int main()
{
    int lop, squr;
    for (lop = 1; lop <= 20; lop++)
    {
        squr = lop*lop;
        printf("%5d,%5d,\n", lop, squr);
    }
    return 0;
}

conio.h因此clrscr()getch()不属于标准,您不应在代码中使用

编辑 -

  

并告诉我有多少版本的C ++可用...

C ++没有完全版本,有standards

Year    C++ Standard                    Informal name
2011    ISO/IEC 14882:2011              C++11
2007    ISO/IEC TR 19768:2007           C++TR1
2003    ISO/IEC 14882:2003              C++03
1998    ISO/IEC 14882:1998              C++98

但是有一些C ++编译器的版本,如gcc 4.7.2等。