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;
}
相关推荐
双叶83610 天前
(C语言)Map数组的实现(数据结构)(链表)(指针)
c语言·数据结构·c++·算法·链表·哈希算法
不会kao代码的小白10 天前
C指针总结复习(结合deepseek)
c语言
XiaoCCCcCCccCcccC10 天前
C语言数组介绍 -- 一维数组和二维数组的创建、初始化、下标、遍历、存储,C99 变长数组
c语言·数据结构·算法
岁忧10 天前
第十六届蓝桥杯C/C++程序设计研究生组国赛 国二
c语言·c++·算法·蓝桥杯
一ge科研小菜鸡10 天前
编程语言的设计之道:从底层控制到表达自由
java·c语言·c++·python
天若有情67310 天前
技术逐梦之旅:从C语言到Vue的成长之路
c语言·开发语言·vue.js
Jess0710 天前
队的简单介绍
c语言
攻城狮7号10 天前
【AI时代速通QT】第二节:Qt SDK 的目录介绍和第一个Qt Creator项目
c语言·c++·qt·跨平台
jz_ddk10 天前
[学习] C语言<string.h>中字符串函数全解析
c语言·开发语言·学习