• 杭电1412


    题意:给你两个集合,要求{A} + {B}.注:同一个集合中不会有两个相同的元素。

    Analyse:
    用a[],b[]数组存放两集合的元素,然后分别升序排序,方便比较和输出。
    输出的大致方法:j从0开始递增,输出所有小于b[j]的a[i],若b[j]不等于a[i],再输出b[j],继续循环直到B的元素输出完毕。最后对于可能剩余的A的元素依次输出。
    View Code
     1 #include<stdio.h>
    2 main()
    3 {
    4 int a[10000],b[10000];
    5 int i,j,FLAG;
    6 int m,n;
    7 int min,temp;
    8 while(scanf("%d%d",&n,&m)==2)
    9 {
    10 for(i=0;i<n;i++)
    11 scanf("%d",&a[i]);
    12 for(i=0;i<m;i++)
    13 scanf("%d",&b[i]);
    14 for(i=0;i<n-1;i++)
    15 {
    16 min=i;
    17 for(j=i+1;j<n;j++)
    18 {
    19 if(a[min]>a[j])
    20 min=j;
    21 }
    22 temp=a[min];
    23 a[min]=a[i];
    24 a[i]=temp;
    25 }
    26 for(i=0;i<m-1;i++)
    27 {
    28 min=i;
    29 for(j=i+1;j<m;j++)
    30 {
    31 if(b[min]>b[j])
    32 min=j;
    33 }
    34 temp=b[min];
    35 b[min]=b[i];
    36 b[i]=temp;
    37 }
    38 FLAG=0;
    39 for(j=0,i=0;j<m;j++)
    40 {
    41 for(;i<n;i++)
    42 {
    43 if(a[i]<b[j])
    44 {
    45 printf(FLAG?" %d":"%d",a[i]);
    46 FLAG=1;
    47 }
    48 else
    49 break;
    50 }
    51 if(b[j]!=a[i==n?n-1:i])
    52 {
    53 printf(FLAG?" %d":"%d",b[j]);
    54 FLAG=1;
    55 }
    56 }
    57 for(;i<n;i++)
    58 {
    59 printf(FLAG?" %d":"%d",a[i]);
    60 FLAG=1;
    61 }
    62 printf("\n");
    63 }
    64 }
  • 相关阅读:
    the Agiles Scrum Meeting 2
    团队任务拆解
    the Agiles Scrum Meeting 1
    [敏捷软工团队博客]技术规格说明书
    [敏捷软工团队博客]功能规格说明书
    团队贡献分分配规则
    第一次例会
    团队项目技术规格说明书
    团队项目功能规格说明书
    NABCD-name not found
  • 原文地址:https://www.cnblogs.com/ZShogg/p/2416632.html
Copyright © 2020-2023  润新知