| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题:人见人爱A-B
只看楼主 加入收藏
hedaacm
Rank: 6Rank: 6
来 自:河北保定
等 级:侠之大者
威 望:2
帖 子:400
专家分:418
注 册:2012-1-26
结帖率:79.41%
收藏
已结贴  问题点数:20 回复次数:12 
人见人爱A-B

 
人见人爱A-B
参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)

呵呵,很简单吧?
Input
每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.
如果n=0并且m=0表示输入的结束,不做处理
 
人见人爱A-B
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22739    Accepted Submission(s): 6360


Problem Description
参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)

呵呵,很简单吧?

Input
每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.
如果n=0并且m=0表示输入的结束,不做处理。
 

Output
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.

 

Sample Input
3 3 1 2 3 1 4 7
3 7 2 5 8 2 3 4 5 6 7 8
0 0
 

Sample Output
2 3
NULL#include<stdio.h>
int main()
{
    int m,n,i,j,k=0,c[100];
    if(m==0||n==0)
    printf("NULL");
    else
    {
        while(scanf("%d%d",&m,&m)!=EOF)
        {
                                   k=0;
                                   int a[100],b[100];
                              for(i=0;i<m;i++)
                                 scanf("%d",&a[i]);
                              for(j=0;j<n;j++)
                                    scanf("%d",&b[j]);
                              
            
            
                     if(m<=n)
                  {
                      for(i=0;i<m;i++)
                            {
                                 for(j=0;j<n;j++)
                                          {
                                               if(a[i]!=b[j])
                                                c[k]=a[i];
                                                k++;               
                  
                                            }                     
                                }
         
                      if(k==0)
                         printf("NULL");
                         else
                           {
                                 for(i=0;i<k-1;i++)
                                     printf("%d ",c[i]);
                                    printf("%d\n",c[i]);   
                           }   
                    }   
         
         
                                         
                          else
                                {
                                         for(i=0;i<n;i++)
                                            {
                                                    for(j=0;j<n;j++)
                                                    if(a[i]!=b[j])
                                                              {
                                                                   c[k]=a[i];
                                                                    k++;
                                                                   }               
                                                     }
                                        if(k==0)
                                           printf("NULL");
                                         else
                                              {
                                                for(i=0;i<k;i++)
                                                printf("%d ",c[i]);
                                               for(i=n;i<m;i++)
                                                printf("%d ",a[i]);
                                                   printf("%d\n",a[i]);
              
                                  }                                
                                   
            }                           
                                       
                                       
                              
     }
   
    }
    return 0;
   }

 


[ 本帖最后由 hedaacm 于 2012-9-12 09:56 编辑 ]
搜索更多相关主题的帖子: 元素 
2012-03-11 20:31
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
试试这个

程序代码:
#include<stdio.h>
int cmp(const void * a, const void * b)
{
    return *(int *)a - *(int *)b;
}
int main()
{
    int n, m, a[128], b[128], i, j, f;
    while(scanf("%d %d", &n, &m), (n || m))
    {
        for(i = 0; i < n; scanf("%d", &a[i++]));
        for(i = 0; i < m; scanf("%d", &b[i++]));
        qsort(a, n, sizeof(int), cmp);
        qsort(b, n, sizeof(int), cmp);
        for(f = i = j = 0; i < n; i++)
        {
            for(; j < m && a[i] > b[j]; j++);
            if(j < m && a[i] == b[j]) continue;
            printf("%d ", a[i]);
            f++;
        }
        if(!f) printf("NULL");
        putchar('\n');
    }
    return 0;
}

重剑无锋,大巧不工
2012-03-11 20:56
hedaacm
Rank: 6Rank: 6
来 自:河北保定
等 级:侠之大者
威 望:2
帖 子:400
专家分:418
注 册:2012-1-26
收藏
得分:0 
回复 2楼 beyondyf
运行错误


哥哥,你的代码俺看不懂丫         如何提高自己的编程能力那?除了刷题    除了C语言课本,你有啥好书吗?
推荐下呗!!谢谢哥哥喽
2012-03-17 21:36
wsws23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:105
专家分:107
注 册:2012-3-13
收藏
得分:3 
回复 3楼 hedaacm
c语言  除了看书外 就要多练习了 你在练习的过程中就会有进一步的理解了
一本书基础知识就已经够了
2012-03-17 22:16
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:3 
膜拜下吧   大神写的程序   专业啊     努力看中....
2012-03-17 22:27
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
运行错误?
杭电2034就是这题,刚才提交了一下上面的代码AC。

重剑无锋,大巧不工
2012-03-17 23:29
hedaacm
Rank: 6Rank: 6
来 自:河北保定
等 级:侠之大者
威 望:2
帖 子:400
专家分:418
注 册:2012-1-26
收藏
得分:0 
回复 6楼 beyondyf
图片附件: 游客没有浏览图片的权限,请 登录注册

调试结果说  qsort 是未声明的
2012-03-18 16:13
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:3 
qsort是stdlib库的,加进去应该就行了
2012-03-18 16:16
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:3 
运行是可以的,但是无输出

LS那个是库没有头文件还是咋滴,新手不太懂
2012-03-18 16:18
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:3 
哈哈丶

编程之路定要走完……
2012-03-18 16:24
快速回复:人见人爱A-B
数据加载中...
 
   



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

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