2017-08-03 18 views
-6

我的代碼有什麼問題? 它必須找到n之間的最大數字。我的代碼在查找最大編號時似乎有語法錯誤

#include<iostream> 
using namespace std; 
int main() 
{ 
    int n,i = 0; 
    cin >> n; 
    int a[n]; 
    while(i < n) 
    { 
     cin >> a[i]; 
     i++; 
    } 
    i=1; 
    while(i <= (n + 1)) 
    { 
     if (a[i] > a[0]) 
     { 
      a[0] = a[i]; 
     } 
     i++; 
    } 
    cout << a[0]; 
    return 0; 
} 
+4

這聽起來像你可能需要學習如何使用調試器來遍歷你的代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:[如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) – NathanOliver

+3

如果你的代碼有語法錯誤,編譯器應該告訴你哪裏。你爲什麼不發佈它? – StoryTeller

+2

這是一個語法錯誤,虛擬長度數組(VLA),'int a [n];'。標準的C++語言不支持它們。使用'std :: vector'它可以動態增長。 –

回答

2

這是爲了讓你學習,所以我不想爲你做你的代碼。這就是說我會看while(i <= (n + 1))。你超出了你的數組邊界。

相關問題