问题:
代码:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[100000] = { 0 };
int i = n;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int a = 0;
int b = 0;
int j = 0;
arr[0] = 0;
arr[n - 1] = 0;
for (j = 0; j < n - 1; j++)
{
if (arr[j] > arr[j+1])
{
a = 1;
}
if (a == 1 && arr[j] < arr[j + 1])
{
b++;
a = 0;
}
}
printf("%d", b);
}
解析:
一,首先低洼地成立的条件就是“先下坡,在上坡",如果有n个数就会产生n-1个坡度;由此写出第一个for循环。
二,我们知道低洼成立的条件,所以只要先找到上坡的路线,找个变量a记录下来
此时会出现两种情况,再次下坡的时候,此时"a=1“的妙用显现出来;(不用a++的原因)
当出现上坡时,我们就找到了一个完整的低洼地,找一个b记录接下来,并且令a=0;从新寻找上坡路线。