#include<iostream>
#include<algorithm>
using namespace std;

//排序后二分查找
//更为高效的查找方式再数据结构章节的散列表部分介绍

const int maxN = 105;
int target[maxN]; //find是关键字不能用
int n;
int m;

//注意数组不需要引用传参,直接传参就是指针;形参int arr  int arr[]  int arr[][]本质上都是一个指针,只是形式差别
//数组有值传递吗?
int bFind(int arr[], int x) { //其实arr如果是全局变量就不用传参;
    int l = 0, h = n - 1;
    while (l <= h) { //注意这里的等号,不取等号的话就不对
        int m = (l + h) / 2;
        if (arr[m] == x) {
            return 1;
        } else if (arr[m] < x) {
            l = m + 1;
        } else {
            h = m - 1;
        }
    }
    return 0;
}

int main() {
    int arr[105];
    while (cin >> n) {
        for (int i = 0; i < n; i++) {
            cin >> arr[i];
        }
        sort(arr, arr + n);

        cin >> m;
        for (int i = 0; i < m; i++) {
            cin >> target[i];
        }
        for (int i = 0; i < m; i++) {
            if (bFind(arr, target[i])) {
                printf("YES\n");
            } else {
                printf("NO\n");
            }

        }
    }
    return 0;
}

注意find是关键字不能用作标识符(变量名、函数名)

数组传参直接就是指针传参;

数组有值传递吗???