老师平时布置的希冀系统上的作业答案,仅供参考!
【问题描述】
从标准输入中输入两组整数(每行不超过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
暂无评论内容