【C++】之''求两组整数集的'或'集''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,每个整数只出现一次(重复整数只保留一个),并从小到大排序输出(即两组整数集“或”)。

【输入形式】

首先输入第一组整数的个数,再输入第一组整数,整数间以空格分隔;然后输入第二组整数的个数,再输入第二组整数,整数间以空格分隔。

【输出形式】

按从小到大顺序排序输出合并后的整数,并不含重复整数。

【样例输入】

8
5 1 4 3 8 7 9 6
4
5 2 8 10

【样例输出】

1 2 3 4 5 6 7 8 9 10

【样例说明】

第一组整数个数为8,分别为5 1 4 3 8 7 9 6,第二组整数个数为4,分别为5 2 8 10。将第一组和第二组整数合并(不含重复整数),并从小到大顺序排序后结果为1 2 3 4 5 6 7 8 9 10。

【参考答案】

#include<iostream>
#include<string>
#include<string.h>
using namespace std;

int main()
{
int a[100],b[100];
int a1,b1,x=0,num=0;
cin>>a1;
for(int i=0;i<a1;i++)
{
cin>>a[i];
}
cin>>b1;
for(int i=0;i<b1;i++)
{
cin>>b[i];
}
int c[100];
for(int i=0;i<a1;i++)
{
num=0;
for(int j=0;j<b1;j++)
{
if(a[i]==b[j])
{
num++;
}
}
//cout<<"num="<<num<<endl;
if(num==0)
{
b[b1+x]=a[i];
x++;
}

}
for(int m=1;m<b1+x;m++)
{
for(int n=0;n<b1+x-m;n++)
{
if(b[n]>b[n+1])
swap(b[n],b[n+1]);
}
}
for(int i=0;i<b1+x;i++)
{
cout<<b[i]<<' ';
}
return 0;
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容