题目描述
输入数组长度 n
输入数组 a[1...n]
输入查找个数m
输入查找数字b[1...m]
输出 YES or NO 查找有则YES 否则NO 。
输入
输入有多组数据。
每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。
输出
如果在n个数组中输出YES否则输出NO。
样例输入
6
3 2 5 4 7 8
2
3 6
样例输出
YES
NO
思路:
利用循环嵌套去找是否有相同的数据;要搞清楚continue和break去区别,查找到数字后用break结束当前循环体,避免遍历之后输出NO, 要注意字母的大小写。
break 是结束整个循环体(仅结束一个),continue是结束单次循环。
代码如下 :
#include <cstdio>
const int max_n = 105;
int main()
{
int n, m;
int a[max_n], b[max_n];
while (scanf("%d", &n) != EOF)
{
for (int i = 0; i < n; i++) {
scanf ("%d", &a[i]);
}
scanf ("%d", &m);
for (int i = 0; i < m; i++) {
scanf ("%d", &b[i]);
}
int i, j ;
for (i = 0; i < m; i++) { //b[]数组应在外侧;
for (j = 0; j < n; j++) {
if (b[i] == a[j]) {
printf ("YES\n");
break; //找到之后跳出当前循环; 即for循环 if并不为循环 否则 会导致输出NO;
}
}
if (j == n ) printf ("NO\n"); //遍历之后没有找到相同的数据; 注意大小写;
}
}
return 0;
}