Нужно помочь разобраться, что не так в коде
Имеется вот такое задание: Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, и печатает число локальных максимумов (элемент является локальным максимумом, если он не имеет соседей, больших, чем он сам).
#include <iostream>
using namespace std;
int main() {
cout << "Vedite pazmepHoct macuva: ";
int n = 0;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cout << "arr[" << i << "] = ";
cin >> arr[i];
}
for (int i = 0; i < n; i++) {
if (i == 0) {
if (arr[i] > arr[i + 1]) {
cout << arr[i] << '\n';
}
} else if (i == n - 1) {
if (arr[i] > arr[i - 1]) {
cout << arr[i] << '\n';
}
} else {
if (arr[i] > arr[i + 1] && arr[i] > arr[i - 1])
cout << arr[i] << " ";
}
}
cin.get();
cin.get();
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Вам надо печатает число локальных максимумов, так что надо просто посчитать это число и вывести, а не выводить сами числа.
#include <iostream>
using namespace std;
int main() {
cout << "Vedite pazmepHoct macuva: ";
int n = 0;
cin >> n;
int* arr = new int[n];
for (int i = 0; i < n; i++) {
cout << "arr[" << i << "] = ";
cin >> arr[i];
}
int max_count = 0;
if (arr[0] >= arr[1]) max_count++;
if (arr[n - 1] >= arr[n - 2]) max_count++;
for (int i = 1; i < n - 1; i++)
if (arr[i] >= arr[i + 1] && arr[i] >= arr[i - 1]) max_count++;
cout << max_count;
}