#include <iostream>
using namespace std;
const int MAX_SIZE = 20;
int main()
{
int n, a[MAX_SIZE]; // initialize array and its size
cin >> n; //
for (int i = 0; i < n; i++) // ===> array input
cin >> a[i]; //
int max = 0; // initializing a variable indicating the length of the longest sequence
int i;
int current = 0; // makes sure the each loop begins from where the last has concluded
do
{
int count = 0; // counter indicating the length of the sequence.. resets after each loop
for (i = current; a[i] <= a[i + 1] && i < n - 1; i++) // loops until a lower than the previous number is found or the array ends
{
count++;
}
current = i; // makes so that the next loop can start from where the last has concluded
if (count > max) max = count; // determines the longest "growing" sequence of numbers
} while (i < n); // when all of the array elements are checked the program is done
cout << max << endl;
return 0;
}
我的評論技巧很糟糕,所以對我來說不要太難。我試圖儘可能清楚地解釋我想用我的代碼完成的事情,因爲我之前的問題中存在誤解。長度不斷增長的序列C++
TL; DR:總結起來,這是(或至少應該是)一個程序,它可以在數組中找到「增長」數字的最長序列長度。 「增長」意味着什麼?每一個下一個數字均等於或高於前一個數字的順序。例如在1 2 3 3 1 2
中,「增長」序列爲1 2 3 3
,其長度(輸出結果應該是4)。然而,由於某種未知的原因,當我編譯並輸入數組時,程序凍結而沒有給出任何輸出。任何想法可能導致什麼?我在這裏先向您的幫助表示感謝 !
在調試器中逐步執行程序。 –
歡迎來到Stack Overflow!要求人們發現代碼中的錯誤並不是特別有效。您應該使用調試器(或者添加打印語句)來分析問題,追蹤程序的進度,並將其與預期發生的情況進行比較。只要兩者發生分歧,那麼你就發現了你的問題。 (然後如有必要,你應該構建一個[最小測試用例](http://sscce.org)。) –
@OliCharlesworth哦,我真的很抱歉。謝謝,但我該怎麼處理我的問題?刪除它或什麼?我不想因爲這一點而大量涌現。 – user3213110