我的程序假設計算我陣列中的數據從增加到減少的次數,反之亦然。例如:{1,2,3,4,3,4} 會隨着前四個元素增加而改變兩次,然後減少o 3(導致一次改變),然後再增加到四次,導致第二次改變。 在我的代碼中的想法是,每次大或小變爲false時,它會在發生時計數,但我無法使其工作。 任何幫助非常感謝,因爲我真的很困難!C++計算陣列中的數據更改方向的次數?
unsigned count = 0;
bool greater = true;
bool decrease = true;
for (unsigned i = 0; i < elements; i++){
if (a[i + 1] > a[i]){
greater = true;
}
else
greater = false;
count++;
}
for (unsigned i = 0; i < elements; i++){
if (a[i + 1] < a[i]){
decrease = true;
}
else
decrease = false;
count++;
}
return count;
試着將一個複雜的問題分解成更小的更容易的問題。例如你可以構造一個新的'bool'數組,它的條目告訴你原始數組是增加還是減少?如果你有這樣一個陣列,你能解決問題嗎? – Hurkyl