用C语言写一个程序:去掉两个数组的交集

用C语言写一个程序:数组1内有{325,568},数组2内有{7,9,58,64,65,984,679,988,754,325,568}去掉数组1与数组2的交集。去掉后再... 用C语言写一个程序:数组1内有{325,568},数组2内有{7,9,58,64,65,984,679,988,754,325,568}去掉数组1与数组2的交集。去掉后再打印数组2. 展开
 我来答
爱问西瓜爱答树
2013-09-08 · TA获得超过1760个赞
知道小有建树答主
回答量:890
采纳率:50%
帮助的人:294万
展开全部
#include "stdio.h"
int func(int a[],int b[],int sizea,int sizeb)//数组a,数组b,a的大小,b的大小 
{
 int i,j,k;
 //此时sizeof(a)是一个指针变量的大小,不是数组的大小 ,故不能用 
 for(i=0;i<sizea;i++)
  for(j=0;j<sizeb;j++)
   if(a[i]==b[j])
   {
    for(k=j;k<sizeb;k++)//将b前移 
     b[k]=b[k+1];
    sizeb-=1;//减少b的大小 
   } 
 return sizeb;//返回b的新大小   
}
int main()
{
 int testa[]={1,2,3,4,5,6};
 int testb[]={5,6,7,8,9,10};
 int newb=func(testa,testb,sizeof(testa)/4,sizeof(testb)/4);//int是4个字节,故除以4
 int n;
 for(n=0;n<newb;n++) 
 {
  printf("%d\n",testb[n]);
 }
}
海洋phyZ
2013-09-08 · 超过17用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:24.4万
展开全部
int a[3] = {2,3,5}; //数组一
int b[5] = {1,2,3,4,5}; //数组二
bool bFlas= false; //是否有相等标识
int c[sizeof(b)/sizeof(int)]; //中间数组变量
int m=sizeof(b)/sizeof(int); //数组二的大小
int indxe=0; //中间变量索引
for (int i=0;i<sizeof(a)/sizeof(int);i++)
{
for(int j=0;j<m;j++)
{
if (a[i]!=b[j])
{
c[indxe]=b[j];
indxe++;
}
else
{
bFlas=true;
}
}
if (bFlas)
{
b[m-1]=-1; //有交集时将数组二的后面几位赋成-1 可以不用
m--;
bFlas=false;
}
for(int s=0;s<indxe+1;s++)
{
b[s]=c[s]; //判断之后有再将b值去掉交集
}
indxe=0;

}
for (int i=0;i<m;i++)
{
printf("%d ",b[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cx76544658
2013-09-08 · 超过12用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:30.3万
展开全部
#include<stdio.h>
#include<string.h>

/*******比较容易理解的方法*******/
void main()
{
int t1[]={325,568};
int t2[]={7,9,58,64,65,984,679,988,754,325,568};
int i,j,k,t=0;
int lt1,lt2;
lt1=sizeof(t1)/sizeof(int); //t1的长度
lt2=sizeof(t2)/sizeof(int); //t2的长度
for(i=0;i<lt1;i++)
for(j=0;j<lt2;j++)
if(t1[i]==t2[j])
{
lt2--;
for(k=j;k<lt2;k++) //移位
t2[k]=t2[k+1];
t2[lt2]=0;
}
for(i=0;i<lt2;i++)
printf("%d\n",t2[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式