Моя программа должна подсчитать, сколько раз данные в моем массиве менялись от увеличения до уменьшения или наоборот. Например: {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;
Try разбив сложную задачу на более мелкие легче проблем. например можете ли вы построить новый массив 'bool', чьи записи сообщают вам, увеличивается или уменьшается исходный массив? Если бы у вас был такой массив, не могли бы вы решить проблему? – Hurkyl