九度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
****************************************************************/
编程算法爱好者。
浙公网安备 33010602011771号