如何求出任意两个数组的相同元素,同时输出排除相同元素后的两个数组和两个数组的长度。

该程序定义了四个函数,分别用于获取输入数组、显示数组、找出并清除数组的公共元素以及找出两数组的共同元素。用户输入两个数组的长度及元素,程序计算并显示共同元素,然后排除这两个数组中的公共元素,最后输出排除公共元素后的两个新数组。
摘要由CSDN通过智能技术生成

      首先定义两个足够长的数组用来储存两个任意两个数组,如array1[100],array2[100]。两个任意长的数组长度分别用number1,number2定义。同时定义commonarray[100],用来储存相同元素,定义commonarray实际的长度为commonnumber。排除相同元素后的两个数组元素记作newnumber1,newnumber2

代码为:

#include<iostream>
using namespace std;
//获取输入数组元素
void getarray(int number,int array[]){
	        for(int i=0;i<number;i++){
		    cin>>array[i];}}
//显示数组元素
void showarray(int number,int array[]){
	        for(int i=0;i<number;i++){
		    cout<<array[i]<<" ";}}
//将两个数组的相同元素除去,并返回除去后数组的长度
int clear(int number,int array[],int commonnumber,int commonarray[]){
	        if(number==1){
		    int k;commonarray[0]=array[0];return k=0;}
            else{int temp=1,newnumber=0;
	        for(int i=0;i<number;i++){
		    for(int j=0;j<commonnumber;j++){
			if(array[i]==commonarray[j]){
			temp=0;}}
		    if(temp){array[newnumber]=array[i];newnumber=newnumber+1;}
			temp=1;}return newnumber;}}
//寻找两数组的共同元素,储存在commonarray,并返回共同数组的长度
int findcommon(int number1,int array1[],int number2,int array2[],int commonarray[]){
	        int commonnumber=0;
	        for(int i=0;i<number1;i++){
		    for(int j=0;j<number2;j++){
			if(array1[i]==array2[j]){commonarray[commonnumber]=array1[i];
			commonnumber=commonnumber+1;break;}}}return commonnumber;}
int main(){int number1,number2,commonnumber,newnumber1,newnumber2,
	           array1[100],array2[100],commonarray[100]; 
               cout<<"请输入第一个数组长度:";cin>>number1;cout<<endl;
			   cout<<"请输入第二个数组长度:";cin>>number2;cout<<endl;
			   cout<<"请输入第一个数组:";getarray(number1,array1);cout<<endl;
			   cout<<"请输入第二个数组:";getarray(number2,array2);cout<<endl;
			   commonnumber=findcommon(number1,array1,number2,array2,commonarray);
			   cout<<"排除共同元素后的第一个数组长度为:";
			   newnumber1=clear(number1,array1,commonnumber,commonarray);cout<<newnumber1<<endl;
			   cout<<"排除共同元素后的第二个数组长度为:";
			   newnumber2=clear(number2,array2,commonnumber,commonarray);cout<<newnumber2<<endl;
			   cout<<"共同元素为:";
			   showarray(commonnumber,commonarray);cout<<endl;
			   cout<<"排除共同元素后的第一个数组为:";
			   showarray(newnumber1,array1);cout<<endl;
			   cout<<"排除共同元素后的第二个数组为:";
			   showarray(newnumber2,array2);cout<<endl;
               system("pause");
               return 0;
}

      定义getarray函数,用来获得初始两个数组。

       定义findcommon函数,对两个数组的重复元素进行搜索,将第一组数组的一个元素与第二组的每一个元素进行比对,如果出现一致,那么将这个元素储存到commonarray中,同时对应的commonnumber加一(commonnumber用来记录相同元素数量),之后跳出此循环,对第一个数组的下一个元素进行比对。同时返回相同元素个数。

        定义clear函数,用来排除去两个数组里的公共元素,因为array1和commonarray是相互包含的关系,所以取array1的一个元素与commonarray所有元素进行比对,如果出现一致,那么定义temp=0;如果不一致,那么temp=1。temp等于1时,将这个元素重新赋值到array1中。执行完后,将下一个元素与commonarray进行比对,直到array1所有元素检测完为止。同时返回去除相同元素后的array1中的元素个数,记作newnumber1。array2同理。

         定义showarray函数,用于显示数组元素。

输出结果为:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值