C语言编程--区间最帅值

Python012

C语言编程--区间最帅值,第1张

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

typedef struct Section {

    int L

    int R

} Sec

int main()

{

    int n, m, q

    printf("输入n(n>=1), m, q(q<=200)三个整数:\n")

    scanf("%d%d%d", &n, &m, &q)

    

    printf("输入%d个(1~100000)整数:\n", n)

    int i = 0, j = 0

    int a[n]

    char str[10]

    char ch

    while (i < n) {

        ch = getchar()

        if (48<= ch && ch <= 57) {

            str[j] = ch

            j++

        }

        else {

            if (strlen(str) > 0) {

                a[i] = atoi(str)

                i++

                j = 0

            }

        }

    }

    

    printf("输入%d组(1~%d)整数:\n", q, n)

    i = 0

    Sec sec[q]

    while (i < q) {

        Sec s

        scanf("%d%d", &s.L, &s.R)

        sec[i] = s

        i++

    }

    

    int min

    for (i = 0 i < q i++) {

        min = a[sec[i].L -1]

        for (j = sec[i].L - 1 j < sec[i].R j++) {

            int k = abs(min - m) - abs(a[j] - m)

            if (k == 0) {

                min = min < a[j] ? min : a[j]

            }

            else {

                min = k < 0 ? min : a[j]

            }

            if (j == sec[i].R - 1) {

                printf("%d\n", min)

            }

        }

    }

    

    return 0

}

##在C/C++中具有连接字符串的作用。例如: 执行完A ## B后变为AB(连接A和B并去掉空格)。 下面通过具体实例来说明##的工作原理: 假设程序中已经定义了这样一个带参数的宏: #define paster( n ) printf( "token" #n " = %d", token##n ) 同时。