c++两个数组合并成一个新数组 50

c++编程题,控制台输入两个元素不重复的int类型的数组nums1和nums2,无规律。将两个数组合并成一个数组,合并后,不能有重复的数据出现,并按顺序输出。列如:数组1... c++编程题,
控制台输入两个元素不重复的int类型的数组nums1和nums2,无规律。
将两个数组合并成一个数组,合并后,不能有重复的数据出现,并按顺序输出。
列如:
数组1: 16735
数组2: 26745
合并后输出: 1234567
展开
 我来答
南笙少年546
2018-11-15
知道答主
回答量:24
采纳率:100%
帮助的人:5.6万
展开全部

#include<iostream>
using namespace std;
class
SET
{
int a[40],b[40];
int
numa,numb;
public:
SET(int x[],int len1,int y[],int
len2)
{
numa=len1;numb=len2;
for(int
i=0;i<len1;i++)
{

a[i]=x[i];

}
for(int
i=0;i<len2;i++)
{

b[i]=y[i];
}
}
int notIn(int
elem,int s[],int size)
{
for(int
i=0;i<size;i++)

if(s[i]==elem)
return 0;
return
1;
}
void insert();
void
outPut()
{
cout<<"并集后的数组a的个数:"
<<numa<<endl;

for(int
i=0;i<numa;i++)
{
cout<<a[i]<<"\t";
}

cout<<endl;
}

};
void SET::insert()
{
int i=0;
int
count=numa;
do
{

if(notIn(b[i],a,count)!=0)
a[numa++]=b[i];

i++;
}
while(i<numb);
}
void
main()
{
int a[]={1,3,5,7,9};
int
b[]={1,2,3,4,5,6};
SET
set(a,sizeof(a)/sizeof(a[0]),b,sizeof(b)/sizeof(b[0]));
set.insert();
set.outPut();
}

本回答由电脑网络分类达人 董辉推荐

1   10

评论 

分享

举报

VermouthTaste 
推荐于2016-11-04

可以先定义c[9]将数组a,b的数放入,然后再利用冒泡法(其他排序法也可以)对数组c进行排序

追问

能给一段代码么

追答

int main()
{
int a[4]={1,2,3,4},b[5]={5,6,7,8,9};
int c[9];
int i=0,j,buffer;

for(i=0;i<4;i++)
c[i]=a[i];

for(i=0;i<8;i++)
{
for(j=0;j<8-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}

}

}

White_MouseYBZ
2018-11-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6633万
展开全部
//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int myinput(int *p,int n){
for(int i=0;i<n;i++){
cin >> p[i];
if(cin.get()=='\n')
return i+1;
}
return i;
}
int main(int argc,char *argv[]){
int nums1[100],nums2[50],i,j,k,t,l1,l2;
cout << "Enter the first array(int, Separated by ' ', 'Enter' end)...\n";
l1=myinput(nums1,50);//输入第一数组
cout << "Enter the second array(int, Separated by ' ', 'Enter' end)...\n";
l2=myinput(nums2,50);//输入第二数组
for(t=0;t<l2;nums1[l1++]=nums2[t++]);//把nums2连接到nums1后面
for(i=0;i<l1;i++){//排序
for(k=i,j=k+1;j<l1;j++)
if(nums1[k]>nums1[j])
k=j;
if(k-i)
j=nums1[k],nums1[k]=nums1[i],nums1[i]=j;
}
cout << "\nThe results are as follows:\n" << nums1[j=0];
for(i=1;i<l1;i++)//去重并输出
if(nums1[j]!=nums1[i])
cout << ' ' << (nums1[++j]=nums1[i]);
cout << "\n\n";
  return 0;
}

运行样例:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式