怎样用语言c语言实现集合的合并,交集?

voidbing(chara[],charb[],intm,intn)//并集{chard[400];inti=0,j=0,s=m;for(i=0;i<m;i++)d[i... void bing(char a[],char b[],int m,int n) //并集
{ char d[400];
int i=0,j=0,s=m;
for(i=0;i<m;i++)
d[i]=a[i];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(b[j]!=a[i])
{d[s]=b[j];s++;}
}
cout<<"集合并集是:";
for(i=0;i<s;i++)
cout<<d[i]<<" ";
}
这是我的并集程序,,输出来的总是把b集合的字符输出两遍,这是为什么
展开
 我来答
920020234
推荐于2016-04-13 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:0%
帮助的人:2141万
展开全部
通过你描述的问题,正确的交集代码如下:
void bing(char a[],char b[],int m,int n)

{ char d[400];
int i=0,j=0,s=m;
for(i=0;i<m;i++)
d[i]=a[i];
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
if(b[i]==a[j]) break;
}
if(j==m) d[s++]=b[i];
}
cout<<"集合并集是:";
for(i=0;i<s;i++)
cout<<d[i]<<" ";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wqws16623
推荐于2016-02-03 · TA获得超过140个赞
知道答主
回答量:53
采纳率:0%
帮助的人:37.5万
展开全部
我觉得你这个程序会是:A集合里有几个元素。B集合里的元素就会输出几次。
应该改成下面这样:
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
if(b[i]==a[j]) break;
}
if(j==m) d[s++]=b[i];
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miss_feier
2012-10-24 · 超过23用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:36.5万
展开全部
同时遍历两个集合 相同的值填入新集合即为并 出现过的值填入心机和即为交

你先把a[i]的值都赋给d[i] 如果a中有重复的值呢?

我认为你应该遍历a[],b[]中的元素 并且查询当前的d[],如果d[]中没有则插入d[]中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
裔歌宦笑天
2020-07-06 · TA获得超过3668个赞
知道大有可为答主
回答量:3179
采纳率:29%
帮助的人:191万
展开全部
通过你描述的问题,正确的交集代码如下:
void
bing(char
a[],char
b[],int
m,int
n)
{
char
d[400];
int
i=0,j=0,s=m;
for(i=0;i<m;i++)
d[i]=a[i];
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
if(b[i]==a[j])
break;
}
if(j==m)
d[s++]=b[i];
}
cout<<"集合并集是:";
for(i=0;i<s;i++)
cout<<d[i]<<"
";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式