4981: 正负波动
描述
给定一系列数据,问这些数据是否在正数和负数之间波动,如果数据中有0,先删除0后再考虑波动情况。
比如:1 -1 2 -2 4 -3为正负波动的,而1 2 -1 2不是正负波动的,因为存在相邻的数据1和2,其符号相同。
输入
输入数据的第一行为整数n(3<=n<=20),表示数据的个数。
第二行为n个整数,其中至少有3个非0数据。
输出
若数据呈现正负波动,输出Yes,否则输出No。
样例输入
5
1 -1 2 0 -2
样例输出
Yes
#include <stdio.h>
int main()
{
int n,a[20],b[20],i,s=0,d=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
{b[s]=a[i];
s++;}
}
for(i=1;i<s;i++)
{
if(b[i-1]>0)
{
if(b[i]<0)
d++;
}
if(b[i-1]<0)
{
if(b[i]>0)
d++;
}
}
if(d==s-1)
printf("Yes\n");
else
printf("No\n");
return 0;
}