KY54 打印极值点下标

描述:

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数, 或者小于所有它相邻的整数,则称该整数为一个极值点,极值点的下标就是i。
输入描述:

每个案例第一行为此数组元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔
输出描述:

每个案例输出为n个数字(其中n为该案例中极值点的个数):每个数字对应相应数组的相应极值点下标值,下标值之间用空格分隔。
示例1

复制代码
输入:
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

知识点: 查找
AC代码:

c 复制代码
#include <stdio.h>

int main() {
    int k;
    int arr[85];
    while(scanf("%d", &k) != EOF) {
        for(int i = 0; i < k; i ++)
            scanf("%d", &arr[i]);
        if(arr[0] != arr[1])
            printf("0 ");
        for(int i = 1; i < k - 1; i++)
            if((arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) || (arr[i] < arr[i - 1] && arr[i] < arr[i + 1]))
                printf("%d ", i);
        if(arr[k - 1] != arr[k - 2])
            printf("%d", k - 1);
        printf("\n");
    }
    return 0;
}
相关推荐
宵时待雨31 分钟前
C语言笔记归纳20:文件操作
c语言·开发语言·笔记·算法
superman超哥8 小时前
仓颉语言中锁的实现机制深度剖析与并发实践
c语言·开发语言·c++·python·仓颉
夜月yeyue8 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
json{shen:"jing"}9 小时前
1-C语言的数据类型
c语言·c++·算法
名誉寒冰10 小时前
GDB 调试与 Core Dump(段错误)排查指南(Linux/C/C++)
linux·c语言·c++
GoWjw12 小时前
在C&C++中结构体的惯用方法
c语言·开发语言·c++
fufu031112 小时前
Linux环境下的C语言编程(四十三)
linux·c语言·算法
Darken0315 小时前
基于C语言的学习---if语句
c语言·学习·if语句
json{shen:"jing"}16 小时前
2-C语言的运算符和表达式
c语言·开发语言
沪漂的码农17 小时前
UDS诊断物理层时间参数详解技术文章
c语言·can·uds