
如何用C语言实现集合合并 ,题目具体要求如下:
Input总共有两行,第一行为集合A的数据,第二行为集合B的数据。每行先输入一个数字N,为该行数据的个数,后面跟随N个数字。Output输出合并后的集合的数据,中间用空格...
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 展开
总共有两行,第一行为集合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 展开
1个回答
展开全部
ACM?
写了一个简单的给你。
编译通过了,功能实现了,不过性能嘛。。。
#include <stdio.h>
#include <stdlib.h>
int contains(int a[],int length,int value) {
int i;
for(i=0;i<length;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<n;i++)
scanf("%d",a+i);
scanf("%d",&m);
for(i=0;i<m;i++) {
scanf("%d",b+i);
length=contains(a,length,b[i]);
}
for(i=0;i<length;i++) {
printf("%d ",a[i]);
}
}
//system("pause");
}
写了一个简单的给你。
编译通过了,功能实现了,不过性能嘛。。。
#include <stdio.h>
#include <stdlib.h>
int contains(int a[],int length,int value) {
int i;
for(i=0;i<length;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<n;i++)
scanf("%d",a+i);
scanf("%d",&m);
for(i=0;i<m;i++) {
scanf("%d",b+i);
length=contains(a,length,b[i]);
}
for(i=0;i<length;i++) {
printf("%d ",a[i]);
}
}
//system("pause");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询