Здесь
for (int i=0; i<=n-1; i++) {
if (maxVal <= myVector[i+1]) {
maxVal = myVector[i+1];
}
else {
maxVal = myVector[i];
}
}
вы меняете значение maxVal
на каждой итерации.В конце maxVal
может быть либо значением последнего элемента, либо элементов, следующих за вашим массивом.Это подводит меня к следующей проблеме: Допустимые индексы - от 0 до (включая) n-1, поэтому, когда вы находитесь на i==n-1
, тогда i+1
выходит за пределы вашего массива.
На самом деле нет необходимости рассматривать следующий или предыдущий элемент, поэтому измените его на
for (int i=0; i<n; i++) { // loop from 0 till n-1
if (maxVal < myVector[i]) { // no need to check equality
maxVal = myVector[i];
} // no need for else
} // if maxVal is bigger then it
// is already the max so far