CCF CSP 折点计数
问题描述
输入格式
输入的第一行包含一个整数n。
第二行包含n个整数,用空格分隔,分别表示a1, a2, …, an。
输出格式
输出一个整数,表示折点出现的数量。
样例输入
7
5 4 1 2 3 6 4
样例输出
2
思路
从问题描述中可以看出,最后的答案是需要统计与左右数据都进行比较的均小或者均大。所以为了条理清晰,我选择利用两个for循环来做。限定的条件分别为(i=0;i<n;i++)和(i=1;i<n-1;i++)。
这样就有效的避免了首尾数字的左右比较。
100分代码
#include<iostream>
using namespace std;
int main()
{
int n,sum=0,a[1000];
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 1; i < n - 1; i++)
{
if (a[i] > a[i - 1] && a[i] > a[i + 1])
{
sum++;
}
else if (a[i] < a[i - 1] && a[i] < a[i + 1])
{
sum++;
}
}
cout << sum;
return 0;
}