九度OJ 1173:查找 (排序、查找)
- 题目描述:
-
输入数组长度 n
输入数组 a[1...n]
输入查找个数m
输入查找数字b[1...m]
输出 YES or NO 查找有则YES 否则NO 。
- 输入:
-
输入有多组数据。
每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。
- 输出:
-
如果在n个数组中输出YES否则输出NO。
- 样例输入:
-
5 1 5 2 4 3 3 2 5 6
- 样例输出:
-
YES YES NO
思路:
多次查找应该事先排好序。用qsort和bsearch。
我这个代码是以前写的,不推荐。
代码:
#include <stdio.h> #define N 100 int main(void) { int n, m, i, j; int a[N], b[N]; while (scanf("%d", &n) != EOF) { for(i=0; i<n; i++) scanf("%d", &a[i]); scanf("%d", &m); for(i=0; i<m; i++) scanf("%d", &b[i]); for(i=0; i<m; i++) { for(j=0; j<n; j++) { if (b[i] == a[j]) break; } if (j == n) printf("NO\n"); else printf("YES\n"); } } return 0; } /************************************************************** Problem: 1173 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/
编程算法爱好者。