16,473
社区成员
发帖
与我相关
我的任务
分享
/*
*首先将A数组排序,并设一个标志数组mark初值都为0
*然后遍历B数组:如果B[i] >= A[0] && B[i] <= A[9]
*则在A数组中查询B[i],如果B[i] = A[j]则++mark[j]
*然后遍历数组mark,如有元素为0则B中不包含A,反之B中包含A
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int A[10] = {2, 5, 8, 9, 12, 34, 56, 90, 99, 100};
int mark[10] = {0};
int B[1000];
int i, j, flag;
for(i = 0; i < 1000; ++i)
{
B[i] = rand() % 101;
printf("%d ", B[i]);
if((i + 1) % 15 == 0)
printf("\n");
}
for(i = 0; i < 1000; ++i)
{
j = 0;
if(B[i] >= A[0] && B[i] <= A[9])
{
while(B[i] > A[j])
++j;
if(B[i] == A[j])
++mark[j];
}
}
flag = 1;
for(i = 0; i < 10; ++i)
{
if(mark[i] == 0)
{
flag = 0;
break;
}
}
if(flag == 0)
printf("\nB中不包含A\n");
else
printf("\nB中包含A\n");
return 0;
}