隔壁三哥a吧 关注:1贴子:20
13 根据原型 int unionsection(int*a1,int len1,int*a2,int len2, int *a3);编写函数,为两个无序int数组求并集,结果写入参数a3指向的数组中,并返回并集元素的个数。可以自己编写,也可以利用STL中现有的函数模板#include<iostream> using namespace std;int a=0;int unionsection(int*a1,int len1,int*a2,int len2, int *a3){int i,j;for(a=0;a<len1;a++)a3[a]=a1[a];for(i=0;i<len2;i++)for(j=0;j<len1;j++){if(a2[i]==a1[j]){}elsea3[a++]=a2[i];break;}return a;}//编写函数,为两个无序int数组求并集,结果写入参数a3指向的数组中,并返回并集元素的个数。 int main(){ int arr[5]={1,3,4,6,5}; int arr2[5]={3,4,2},i; int arr3[99]; int* p=arr3; //p=arr; i=unionsection(arr,5,arr2,3,p); cout<<i<<endl; for(i=0;i<a;i++) cout<<p[i]<<endl; }


IP属地:湖北来自Android客户端19楼2018-06-21 11:28
回复
    14 根据原型 int difference(int*a1,int len1,int*a2,int len2, int *a3);编写函数,为两个无序int数组求差集(前两个参数表示数组与第3、4个参数表示数组的差集),结果写入 参数a3指向的数组中,并返回差集元素的个数。可以自己编写,也可以利用STL中现有的函数模板#include<iostream> using namespace std;int count=0;int difference(int*a1,int len1,int*a2,int len2, int *a3){int i,j,x=0,z;for(i=0;i<len2;i++){for(j=0;j<len1;j++)if(a1[j]==a2[i]) x++; if(x==0) a3[count++]=a2[i]; x=0; } return count; } int main(){ int arr[5]={1,3,4,6,5}; int arr2[5]={3,4,2},i; int arr3[99]; int* p=arr3; //p=arr; i=difference(arr,5,arr2,5,p); cout<<i<<endl; for(i=0;i<count;i++) cout<<p[i]<<endl; }


    IP属地:湖北来自Android客户端20楼2018-06-21 11:29
    回复