#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 ) 同时。