C++ 求两个整数集合(数组)的并集 求大神,前辈指点
题目提示:定义3个一维整型数组a、b、c,分别存放两个整数集合和它们的并集。现将a数组中的全体元素放入c数组,再依次判断b数组中的每一个元素b[i],如果b[i]不属于a...
题目提示:定义3个一维整型数组a、b、c,分别存放两个整数集合和它们的并集。现将a数组中的全体元素放入c数组,再依次判断b数组中的每一个元素b[i],如果b[i]不属于a数组,则将b[i]加入c数组。我编的程序:#include<iostream>using namespace std;void input(int a[],int b[], int c[], int n){ for (int i = 0; i < n; i++) cin >> a[i] >> b[i];} void output(int a[],int b[], int c[], int n,int m){ int i=0, j=0, k = 1000, l = 1000; { while (i < m&&j < n) { {c[n] = a[n]; } if (a[i] == b[j]) { cout << c[i]; } else if (a[i] > b[j]) { {c[i] += (b[i]-b[j]); } j++; } else { {c[j] += (a[i]-a[j]); } cout << c[i]; j++; } } }} int main (void){ cout << "输入数组两个数组" << '\n'; const int n=1000,i=1000,l=1000; int a[n]; int b[i]; int c[l]; input; a[i], b[i], c[i]; output; a[i], b[i], c[i]; system("PAUSE"); return 0;}但是output 我不指导怎么向main里面插入所以出来的程序是这样的
求各位大神,前辈解决……………… 展开
求各位大神,前辈解决……………… 展开
2个回答
展开全部
个人觉得函数功能的安排有点汪闭启缺乏灵活性。看看下面程序(有关函数重新设计了一下):
#include<iostream>
using namespace std;
//输入数组元素困如
void input(int a[], int n)
{
for (int i = 0; i < n; i++)
cin >> a[i];
}
//判断key是否在数组x中
int found(int x[], int n,int key){
int i,f=0;
for(i=0; i<n && !f; i++)
f=x[i]==key;
return f;
}
//求并
void a_union(int a[],int b[],int c[], int na, int nb, int *nc){
int i,n=na;
for(i=0; i<na; i++)
c[i]=a[i];
for(i=0; i<nb; i++)
if(!found(c,n,b[i])){
c[n]=b[i];
n++;
}
*nc=n; //并的长度
}
//输出数组元素
void output(int a[], int n)
{
int i;
for(i=0; i<n; i++)
cout <<a[i] <<" "态尺;
cout <<endl;
}
int main (void)
{
const int n=10,i=10;
int l;
int a[n];
int b[i];
int c[n+i];
cout <<"输入数组a" << '\n';
input(a,n);
cout <<"输入数组b" << '\n';
input(b,i);
//求并
a_union(a,b,c,n,i,&l);
//输出数组c
output(c,l);
system("PAUSE");
return 0;
}
#include<iostream>
using namespace std;
//输入数组元素困如
void input(int a[], int n)
{
for (int i = 0; i < n; i++)
cin >> a[i];
}
//判断key是否在数组x中
int found(int x[], int n,int key){
int i,f=0;
for(i=0; i<n && !f; i++)
f=x[i]==key;
return f;
}
//求并
void a_union(int a[],int b[],int c[], int na, int nb, int *nc){
int i,n=na;
for(i=0; i<na; i++)
c[i]=a[i];
for(i=0; i<nb; i++)
if(!found(c,n,b[i])){
c[n]=b[i];
n++;
}
*nc=n; //并的长度
}
//输出数组元素
void output(int a[], int n)
{
int i;
for(i=0; i<n; i++)
cout <<a[i] <<" "态尺;
cout <<endl;
}
int main (void)
{
const int n=10,i=10;
int l;
int a[n];
int b[i];
int c[n+i];
cout <<"输入数组a" << '\n';
input(a,n);
cout <<"输入数组b" << '\n';
input(b,i);
//求并
a_union(a,b,c,n,i,&l);
//输出数组c
output(c,l);
system("PAUSE");
return 0;
}
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询