输入数组长度 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
感觉挺简单的, 提交了3次才成功, while(1) 循环出错或者复杂度过大, 谢了个快排算法还是一样,
使用getchar和ungetc判断结尾EOF才通过,其实直接while(scanf("%d", &n) != EOF就可以了)
#include
void find(int a[], int n);
int main()
{
int n, a[100], m, b[100];
char ch;
while (1)
{
scanf("%d", &n);
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]);
find(a, n, b, m);
ch = getchar();
ch = getchar();
if (ch == EOF) break;
else ungetc(ch, stdin);
}
return 0;
}
int main()
{
int n, a[100], m, b[100];
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]);
find(a, n, b, m);
}
return 0;
}