有n个互不相同的整数,存储在数组中。在这n个整数中查找m个整数,如果存在,则打印出与之相邻的整数;否则就显示无此数。
输入格式:
共4行,第一行为一个整数n(0<n<=1000),第二行为用空格分隔的n个整数。第三行为一个整数 m(0<m<=100),代表查询次数。第四行为用空格分隔的m个整数。测试用例保证所有整数可以用int存储。
输出格式:
共m行,依次对应输入m次查询结果,每次的查询结果中可能有一个数、两个数或没有数。若没有数则输出“NULL”。具体见样例。
输入样例:
5
89 7890 22 56 87
6
89 7890 22 56 87 999
输出样例:
7890
89 22
7890 56
22 87
56
NULL
代码如下:
void fack(int arr1[1000], int i, int m)
{
if (i == 0)
printf("%d\n", arr1[1]);
else if (i == m - 1)
printf("%d\n", arr1[m - 2]);
else
printf("%d %d\n", arr1[i - 1], arr1[i + 1]);
}
int main()
{
int arr1[1000] = { 0 };
int arr2[100] = { 0 };
int m, n, i,j;
scanf("%d", &m);
for (i = 0; i < m; i++)
scanf("%d", &arr1[i]);
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &arr2[i]);
for (j = 0; j < n; j++)
{
for (i = 0; i < n; i++)
{
if (arr1[j] == arr2[i])
{
fack(arr1, i, m);
break;
}
}
if (i == n)
printf("NULL\n");
}
return 0;
}
数组查找