每个案例第一行为此数组元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔
每个案例输出为n个数字(其中n为该案例中极值点的个数):每个数字对应相应数组的相应极值点下标值,下标值之间用空格分隔。
10 10 12 12 11 11 12 23 24 12 12 15 12 12 122 112 222 211 222 221 76 36 31 234 256 76 76 15 12 14 122 112 222 222 222 221 76 36 31 234 256 76 73
0 7 2 3 4 5 6 10 12 0 2 3 10 12 14
#include <stdio.h> int main(){ //输入 int num; while (scanf("%d", &num) != EOF){ int arr[num]; for (int i = 0; i < num; ++i) { scanf("%d", &arr[i]); } //判断并输出,第一个和最后一个数单独判断 if (arr[0] != arr[1]){ printf("0 "); } for (int i = 1; i < num - 1; ++i) { if (arr[i] > arr[i-1] && arr[i] > arr[i+1]){ printf("%d ", i); } else if (arr[i] < arr[i-1] && arr[i] < arr[i+1]){ printf("%d ", i); } } if (arr[num-1] != arr[num-2]){ printf("%d", num-1); } printf("\n"); } return 0; }
#include<stdio.h> #include<string.h> int main() { int i,n,a[81],b[81]; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); for(i=0;i<n;i++) scanf("%d",&b[i]); for(i=0;i<n;i++) { if((i==0&&b[i]!=b[i+1])||(i==n-1&&b[i]!=b[i-1])) a[i]=1; else if((b[i]>b[i-1]&&b[i]>b[i+1]&&i!=0&&i!=n-1)||(b[i]<b[i-1]&&b[i]<b[i+1]&&i!=0&&i!=n-1)) a[i]=1; else continue; } for(i=0;i<n;i++) if(a[i]) printf("%d ",i); printf("\n"); } return 0; }
#include <stdio.h> #define maxn 85 int num[maxn]; int k; int main() { while(scanf("%d", &k) != EOF) { for (int i = 0; i < k; i++) scanf("%d", &num[i]); for (int i = 0; i < k; i++) { if (i == 0 && num[i] != num[i + 1]) { printf("%d ", i); continue; } if (i == k - 1 && num[i] != num[i - 1]) { printf("%d ", i); continue; } if ((num[i] > num[i - 1] && num[i] > num[i + 1]) || (num[i] < num[i - 1] && num[i] < num[i + 1])) printf("%d ", i); } puts(" "); } }
#include<stdio.h> #include<stdlib.h> #include<stdbool.h> bool Judge(int a[],int n,int index){ if((index==0 && (a[index] >a[1] ||a[index]<a[1])) || (index==n-1 && (a[index] >a[n-2] ||a[index]<a[n-2]))) return true; else if((a[index]>a[index-1] && a[index]>a[index+1]) || (a[index]<a[index-1] && a[index]<a[index+1])) return true; return false; } int main(){ int n; while(scanf("%d",&n)!=EOF){ int *num=(int *)malloc(sizeof(int)*n); for(int i=0;i<n;i++){ int temp; scanf("%d",&temp); num[i]=temp; } for(int j=0;j<n;j++){ if(Judge(num,n,j)) printf("%d ",j); } printf("\n"); } }