C语言集合交集
求集合A与集合B的交集输入整数n,接下来的2n行每2行一组,上面的是集合A,下面是集合B,每行第一个数不是集合元素而是集合元素的个数,集合长度小于100输出集合A和B的交...
求集合A与集合B的交集
输入
整数n ,接下来的2n行每2行一组,上面的是集合A,下面是集合B,每行第一个数不是集合元素 而是集合元素的个数,集合长度小于100
输出
集合A和B的交集,按升序显示
样例输入
4
3 4 2 3
2 3 2
3 1 2 3
3 4 2 1
2 3 1
2 1 3
1 1
2 1 2
样例输出
2 3
1 2
1 3
1 展开
输入
整数n ,接下来的2n行每2行一组,上面的是集合A,下面是集合B,每行第一个数不是集合元素 而是集合元素的个数,集合长度小于100
输出
集合A和B的交集,按升序显示
样例输入
4
3 4 2 3
2 3 2
3 1 2 3
3 4 2 1
2 3 1
2 1 3
1 1
2 1 2
样例输出
2 3
1 2
1 3
1 展开
2个回答
展开全部
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[20],b[20];
int n,m,j,k;
printf ("请输入第一个集合内容\n");
scanf ("%s",a);
j=strlen(a);
printf ("请输入第二个集合内容\n");
scanf ("%s",b);
k=strlen(b);
printf ("集合的交集是:"); ///////////////////////计算2个数组的交集//////////////////// //flag标志位,index数组下标标志位 int flag=1, index=0; //c[20]保存交集的数组,d[40]保存并集的数组
char c[20]="",d[40]="";
for (n=0;n<j;n++)
{
for (m=0;m<=k;m++)
{
if(a[n] == b[m])
{
c[index++] = a[n];
break;
}
}
}
printf("\n%s\n",c); ////////////////////////////计算2个数组的并集/////////////////////// flag=1;
index=0;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == a[n])
flag=0;
}
if(flag)
{
d[index++]=a[n];
}
flag=1;
}
flag=1;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == b[n])
flag=0;
}
if(flag)
{
d[index++]=b[n];
}
flag=1;
} printf ("集合的并集是:");
printf("\n%s\n",d);
return 0;
}
请采纳答案,支持我一下。
#include <string.h>
int main(int argc, char* argv[])
{
char a[20],b[20];
int n,m,j,k;
printf ("请输入第一个集合内容\n");
scanf ("%s",a);
j=strlen(a);
printf ("请输入第二个集合内容\n");
scanf ("%s",b);
k=strlen(b);
printf ("集合的交集是:"); ///////////////////////计算2个数组的交集//////////////////// //flag标志位,index数组下标标志位 int flag=1, index=0; //c[20]保存交集的数组,d[40]保存并集的数组
char c[20]="",d[40]="";
for (n=0;n<j;n++)
{
for (m=0;m<=k;m++)
{
if(a[n] == b[m])
{
c[index++] = a[n];
break;
}
}
}
printf("\n%s\n",c); ////////////////////////////计算2个数组的并集/////////////////////// flag=1;
index=0;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == a[n])
flag=0;
}
if(flag)
{
d[index++]=a[n];
}
flag=1;
}
flag=1;
for (n=0;n<j;n++)
{
for(m=0;m<index;m++)
{
if(d[m] == b[n])
flag=0;
}
if(flag)
{
d[index++]=b[n];
}
flag=1;
} printf ("集合的并集是:");
printf("\n%s\n",d);
return 0;
}
请采纳答案,支持我一下。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般这种问题首先都会想到用for循环来试试.也就是for里面再套一个for(或者while循环里面套for循环). 不知道你有没有先试过.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询