• CSP201604-1:折点计数


    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试,针对计算机软件开发、软件测试、信息管理等领域的专业人士进行能力认证。认证对象是从事或将要从事IT领域专业技术与技术管理人员,以及高校招考研究生的复试对象。

     

    • 问题描述

    给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。

    给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。

    为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1ai。注意,如果两天不相邻,销售量可能相同。

    • 输入格式

    输入的第一行包含一个整数n。

    第二行包含n个整数,用空格分隔,分别表示a1, a2, …, an

    • 输出格式

    输出一个整数,表示折点出现的数量。

    • 样例输入

      7

      5 4 1 2 3 6 4

    • 样例输出

      2

    • 评测用例规模与约定

      所有评测用例满足:1 n 1000,每天的销售量是不超过10000的非负整数。

     

    • 源代码

    # include <stdio.h>

    # include <stdlib.h>

    # include <memory.h>

    int main(void)

    {

        int n; //个数

        int result = 0;

        scanf("%d", &n);

        int *input = (int *)malloc(sizeof(int) * n);

        memset(input, 0, sizeof(int) * n);

        for (int i = 0; i < n; i++)

        {

            scanf("%d", input+i);

        }

        

        for (int i = 1; i < n-1; i++)

        {

            if (((input[i-1] > input[i]) && (input[i+1] > input[i])) || ((input[i-1] < input[i]) && (input[i+1] < input[i])))

            {

                result += 1;

            }

        }

        

        printf("%d ", result);

        

        return 0;

    }

  • 相关阅读:
    redis--pipelining管道
    插入排序
    选择排序
    冒泡排序
    网页表格导入导出Excel
    easyUI的datagrid表格的使用
    软件工程实践总结(个人)
    Beta答辩总结
    Beta冲刺7
    Beta冲刺6
  • 原文地址:https://www.cnblogs.com/husterzxh/p/8447732.html
Copyright © 2020-2023  润新知