#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 ++可用...
此致
答案 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等。