-5
#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++ 可用...

问候

4

2 回答 2

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 的评论。

于 2012-09-22T16:02:07.910 回答
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++ 没有确切的版本,有标准

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等。

于 2012-09-22T16:05:47.283 回答