题目描述
输入数组长度 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 <stdio.h> 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; }