| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5958 人关注过本帖
标题:咋求两个数组的并集
取消只看楼主 加入收藏
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
咋求两个数组的并集
#include <stdio.h>
int main(void)
{
    int a[500],b[500],c[1000],d[500],y[1000],k = 0;
    int i,j,n,m,t,r;
    int q=0,w=0,e=0;
    scanf("%d",&n);
    for(i = 0; i < 5; i++)
        scanf("%d",&a[i]);
    scanf("%d",&m);
    for(j = 0; j < 5; j++)
        scanf("%d",&b[j]);
    for(i = 0;i<n;i++)
        for(j = 0; j < m; j++)
        {  if(a[i]==b[j])
           {  printf("%d ",a[i]);
              d[w++]=a[i];
               k++;
           }
        }//交集;
     for(i = 0;i<n;i++)
         c[q++]=a[i];
     r=n;
     for(j = 0; j < m; j++)
         c[r++]=b[j];//a,b数组给c
     for(i = 0;i<q+r-1;i++)
         for(j = 0; j<q+r-i-1; j++)
         {  if(c[j]>c[j+1])
            {  t=c[j];
               c[j]=c[j+1];
               c[j+1]=t;
            }
         }//数组c排序
     w=0;
     for(i = 0;i<q+r;i++)
     {  if(c[i]!=d[w])
        { y[e]=c[i];
          e++;
        }
        w++;   
     }
     for(i = 0;i<e;i++)
        printf("%d ",y[i]);
    printf("\n");
    return 0;
}
我标了交集注释之后的是求并集,这毛病在哪啊,求各位点拨
搜索更多相关主题的帖子: 并集 int scanf for i++ 
2018-01-12 09:43
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
收藏
得分:0 
回复 2楼 wp231957
我的代码:先把a数组,b数组都给到c数组,然后再把c数组从小到大排序;然后再把c数组和a,b数组的交集比较,把c数组里和交集不同的值赋值给y数组,最后输出y数组。
2018-01-12 10:01
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
收藏
得分:0 
回复 5楼 九转星河
如果要检测a,b不同的,那循环怎么写,如果这样写:
for(i=0;i<n;i++)
   for(j=0;j<m;j++)
   if(a[i]!=b[j])
     printf();
它会每个a[i]都单独与每个b[j]都比一遍,然后输出,要咋写才能使他只比一轮呢。
2018-01-12 11:31
快速回复:咋求两个数组的并集
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037325 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved