设A、B是两个整数集合,每个集合中的元素数均在100以内。这里要求编写一个函数来实现A⊆B的集合运算,当A是B的子集时函数返回值为1,否则返回值为0.
函数接口定义:
int IsIncluded(int *A,int Asize,int *B,int Bsize)
在接口参数中A
和B
是指向存放集合指针,Asize
和Bsize
分别表示集合A
与B
中的元素数。
裁判测试程序样例:
#include <stdio.h> /* 请在这里填写答案 */ void read(int *B,int size) { int i; for(i=0;i<size;i++) scanf("%d",&B[i]); } int main() { int a[100],b[100]; int m,n; scanf("%d",&m); read(a,m); scanf("%d",&n); read(b,n); printf("%d",IsIncluded(a,m,b,n)); return 0; }
输入样例:
输入两行数据,每行数据表示一个集合,其中第一个数据表示该集合中的元素数,后续数据表示集合中的元素。在每行中数据与数据之间用空格分开。例如:
5 1 2 3 4 5
9 7 6 5 4 8 1 3 2 9
输出样例:
输出结果只有一个数,1表示A⊆B,0表示A⊈B,例如:
1
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
结果代码
int IsIncluded(int *A,int Asize,int *B,int Bsize)
{
int i,j;
for(i=0;i<Asize;i++)
{
int found=0;
for(j=0;j<Bsize;j++)
{
if(A[i]==B[j])
{
found=1;
break;
}
}
if(!found)
return 0;
}
return 1;
}