В чем ошибка кода?
Элемент последовательности называется локальным максимумом, если он строго больше предыдущего и последующего элемента последовательности. Первый и последний элемент последовательности не являются локальными максимумами.
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите количество строгих локальных максимумов в этой последовательности.
Формат входных данных
Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
Формат выходных данных
Выведите ответ на задачу.
Ввод: 1
2
3
4
5
0
вывод: 0
#include
using namespace std;
int main() {
int a, k=0, x1=0, x2, x3, m=0, b;
cin>>a;
while(k<2 && a!=0){
k=k+1;
x2=x1;
x1=a;
cin>>a;
}
b=x1;
x1=x2;
x2=b;
if(a=0){
cout<<0;
}
else {
x3=a;
if(x2>x3) {
if(x2>x1){
m=1;
}
}
cin>>a;
while(a!=0){
x1=x2;
x2=x3;
x3=a;
if(x2>x3){
if(x2>x1){
m=m+1;
}
}
cin>>a;
}
cout< }
return 0;
}
Answers & Comments
Verified answer
Программа:
#include <iostream>
using namespace std;
int main() {
int x1, x2, x3, k=0;
cin>>x2>>x3;
while(x3!=0){
x1 = x2;
x2 = x3;
cin >> x3;
if(x2>x1 && x2>x3 && x3!=0) k++;
}
cout<<k;
return 0;
}
Пример:
1
8
3
7
5
8
0
2