zoukankan      html  css  js  c++  java
  • 【杭电】[2034]人见人爱AB

    这里写图片描述
    这里写图片描述

    也是很有意思的一题
    不过当时好像也没费多少劲

    #include<stdio.h>
    int main() {
        int t,i,k,j,n,m,x,y;
        int A[120],B[120],R[120];
        while(scanf("%d %d",&n,&m),n!=0||m!=0) {
            for(i=0; i<n; i++)
                scanf("%d",&A[i]);
            for(i=0; i<m; i++)
                scanf("%d",&B[i]);
            j=y=0;
            for(i=0; i<n; i++) {
                x=0;
                for(k=0; k<m; k++) {
                    if(A[i]==B[k])
                        x=1;
                }
                if(x==0) {
                    y=1;
                    R[j]=A[i];
                    j++;
                }
            }
            if(y==1) {
                for(i=0; i<j; i++) {
                    for(k=0; k<j; k++) {
                        if(R[i]<R[k]) {
                            t=R[i];
                            R[i]=R[k];
                            R[k]=t;
                        }
                    }
                }
                for(i=0; i<j; i++)
                    printf("%d ",R[i]);
                printf("\n");
            } else
                printf("NULL\n");
        }
        return 0;
    }

    =======20160531补充=========

    简化一下思路
    每次对于集合A中的元素
    查找集合B中是否有这一元素
    如果有则无需输出

    最后检查是否输出过元素
    如果没有则为NULL

    注意最后要求排序后输出
    所以可以另开一数组记录

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int a[120],b[120],res[120];
    int main() {
        int n,m;
        while(scanf("%d %d",&n,&m),n||m) {
            for(int i=0; i<n; i++)
                scanf("%d",&a[i]);
            for(int i=0; i<m; i++)
                scanf("%d",&b[i]);
            int cnt=0;
            for(int i=0; i<n; i++) {
                int j;
                for(j=0; j<m; j++) {
                    if(b[j]==a[i]) {
                        break;
                    }
                }
                if(j>=m) {
                    res[cnt++]=a[i];
                }
            }
            if(cnt==0)
                printf("NULL");
            else {
                sort(res,res+cnt);
                for(int i=0; i<cnt; i++)
                    printf("%d ",res[i]);
            }
            printf("\n");
        }
        return 0;
    }

    题目地址:【杭电】[2034]人见人爱A-B

  • 相关阅读:
    二级指针与二维数组
    二维数组的两种访问方式
    函数返回局部变量
    函数指针
    链表
    二叉树各种遍历
    二叉树常见问题
    C语言单链表实现19个功能完全详解
    halcon算子翻译——set_fuzzy_measure_norm_pair
    Halcon算子翻译——set_fuzzy_measure
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12570124.html
Copyright © 2011-2022 走看看