程序功能:升序输出两组整数的交集(A∩B)。
(1)从键盘输入A和B两组整数,每组均为5个整数(假设同一组内的各个整数互不重复)。
(2)求两组整数的交集A∩B,即求在两组数据中都出现的整数。
(3)若交集不为空,则按从小到大顺序输出;若交集为空,则输出"NULL"。
#include <stdio.h>
int main()
{
int i,j,temp,count=0;//定义循环变量,临时变量,计数器
int A[6],B[6],T[6]={0};//定义A,B,临时数组
for(i=1;i<=5;i++)//分别输入A、B
{scanf("%d",&A[i]);}
for(j=1;j<=5;j++)
{scanf("%d",&B[j]);}
for(i=1;i<=5;i++)//交集比较,把A组的每个元素分别和B的每个元素比较
{for(j=1;j<=5;j++)
{
if(A[i]==B[j])T[i]=A[i];
else count++;//如果一次没有交集,则计数器+1,满25
}}
if(count==(5*5)){printf("Null\n");return 0;}//如果计数器到达25,代表完全空集
for(j=1;j<=(5-1);j++)//对交集部分冒泡排序
{for(i=1;i<=(5-1)-j;i++)
{
if(T[i]>T[i+1])
{temp=T[i];T[i]=T[i+1];T[i+1]=temp;}
}}
for(i=1;i<=5;i++)//把排完后的临时数组按顺序输出
if(T[i]==0) continue;
else printf("%d ",T[i]);
return 0;
}