Input
总共有两行,第一行为集合A的数据,第二行为集合B的数据。每行先输入一个数字N,为该行数据的个数,后面跟随N个数字。
Output
输出合并后的集合的数据,中间用空格分隔。(集合B的数据如果不在集合A中,则插入在集合A的最后)。
Sample Input
3 1 2 3
3 4 5 6
Sample Output
1 2 3 4 5 6
如何用C语言实现集合合并 ,题目具体要求如下:
答案:2 悬赏:0 手机版
解决时间 2021-02-02 18:11
- 提问者网友:容嬷嬷拿针来
- 2021-02-01 20:25
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-01 20:54
ACM?
写了一个简单的给你。
编译通过了,功能实现了,不过性能嘛。。。
#include
#include
int contains(int a[],int length,int value) {
int i;
for(i=0;i
if(a[i]==value) return length;
}
a[length]=value;
return ++length;
}
main() {
int n,m;
int a[1000],b[1000];
int i,length;
while(scanf("%d",&n)!=EOF) {
length=n;
for(i=0;i
scanf("%d",a+i);
scanf("%d",&m);
for(i=0;i
scanf("%d",b+i);
length=contains(a,length,b[i]);
}
for(i=0;i
printf("%d ",a[i]);
}
}
//system("pause");
}
写了一个简单的给你。
编译通过了,功能实现了,不过性能嘛。。。
#include
#include
int contains(int a[],int length,int value) {
int i;
for(i=0;i
}
a[length]=value;
return ++length;
}
main() {
int n,m;
int a[1000],b[1000];
int i,length;
while(scanf("%d",&n)!=EOF) {
length=n;
for(i=0;i
scanf("%d",&m);
for(i=0;i
length=contains(a,length,b[i]);
}
for(i=0;i
}
}
//system("pause");
}
全部回答
- 1楼网友:封刀令
- 2021-02-01 21:20
void union(linklist *l1,linklist *l2,linklist *&l3)//交集
{
linklist *p=l1->next,*q=l2->next,*s,*c;
l3=(linklist *)malloc(sizeof(linklist));
l3->next=null;
c=l3;
while(p!=null&&q!=null)
{ if(p->datadata)
{ s=(linklist *)malloc(sizeof(linklist));//复制结点
s->data=p->data;
c->next=s;c=s;
p=p->next;
}
else if(p->data>q->data)
{ s=(linklist *)malloc(sizeof(linklist));
s->data=q->data;
c->next=s;c=s;
q=q->next;
}
else
{
s=(linklist *)malloc(sizeof(linklist));
s->data=p->data;
c->next=s;c=s;
p=p->next;
q=q->next;
}
}
while(q!=null)
{
s=(linklist *)malloc(sizeof(linklist));
s->data=q->data;
c->next=s;c=s;
q=q->next;
}
c->next=null;
while(p!=null)
{
s=(linklist *)malloc(sizeof(linklist));
s->data=p->data;
c->next=s;c=s;
p=p->next;
}
c->next=null;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯