题面
定义函数 int Intersection(int s1[], int n1, int s2[], int n2, int r[]);
求两个整数集合(存放在数组 和 中,元素个数分别为 和 ,无重复元素)的交集,结果按照由小到大的顺序存放在数组 中。返回交集中元素个数。
//********** Specification of Intersction **********
int Intersection(int s1[],int n1,int s2[],int n2,int r[]){
/*
PreCondition: 集合元素存放在s1,s2中;n1, n2分别为两个集合大小
PostCondition: s1和s2的交集存放在r中,元素按由小到大存放;返回交集中元素个数
*/
}
只需按要求写出函数定义,并使用给定的测试程序测试你所定义函数的正确性。
不要改动 main
函数,可以定义其它函数。
测试正确后,将测试程序和函数定义一起提交。
#include <stdio.h>
#include <stdlib.h>
#define N 100
int Intersection(int s1[],int n1,int s2[],int n2,int r[])
{
// Todo: your function definition
}
int main()
{
int n1,n2,i;
int s1[N],s2[N],r[N];
scanf("%d",&n1);
for(i=0;i<n1;i++)
scanf("%d",&s1[i]);
scanf("%d",&n2);
for(i=0;i<n2;i++)
scanf("%d",&s2[i]);
int n=Intersection(s1,n1,s2,n2,r);
for(i=0;i<n;i++)
printf("%d ",r[i]);
putchar('\n');
return 0;
}
输入格式
第1行包含一个整数 ,为集合 的大小。 第2行包含由空格分开的 个整数,为集合 中的元素。 第3行包含一个整数 ,为集合 的大小。 第4行包含由空格分开的 个整数,为集合 中的元素。
输出格式
在一行中由小到大输出 和 交集中的元素,两个整数之间用一个空格分开。
样例
输入
5 1 2 3 4 5 5 5 4 3 2 1
输出
1 2 3 4 5
输入
1 8 4 6 1 4 2
输出
输入
5 4 7 9 2 8 5 8 2 6 5 3
输出
2 8