2012-09-22 149 views
-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++可...

問候

+5

「不好」意味着什麼?至於C++的版本,我在不到一分鐘的時間內在目錄前的維基百科C++文章中發現了它們,只是說。 – chris

+2

由於'void main()'不能正常工作。 – 2012-09-22 15:59:46

+3

這是C,而不是C++。那麼爲什麼它被標記爲這樣? – 0x499602D2

回答

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的評論。

+2

好眼睛:)大聲笑 – 0x499602D2

+5

void main仍然不是標準的C或C++ –

+0

@ÖöTiib已更改。但'','clrscr()'和'getch()'很難擺脫不改變的行爲。 – quantum

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

+0

也許它是爲Borland Turbo C編寫的 – 0605002

+0

@ 0605002:這就是我立即想到的:)但是上面的代碼也會對它起作用 –

+2

我希望,那恐龍IDE是從學校和大學的舊機器中刪除的 –