• 1124 两个有序数组合并


    题目来源:
    https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1124
    Description
    已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。
    Input
    输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。
    Output
    输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。
    Sample Input
    4 1 2 5 7
    3 6 4 2
    Sample Output
    7 6 5 4 2 2 1
    题意描述:
    输入m和m个数,n和n个数(m, n均小于等于1000000)
    将两个数组按降序排列输出
    解题思路:
    将数组a和数组b存进c,对c进行降序排列,输出即可
    程序代码:

     1 #include<stdio.h>
     2 #include<algorithm>
     3 using namespace std;
     4 bool cmp(int x,int y)
     5 {
     6     return x>y;
     7 }
     8 int a[1000010],b[1000010];
     9 int main()
    10 {
    11     int m,n,i,j;
    12     while(scanf("%d",&m) != EOF)
    13     {
    14         for(i=1;i<=m;i++)
    15             scanf("%d",&a[i]);
    16         
    17         scanf("%d",&n);
    18         for(i=1;i<=n;i++)
    19             scanf("%d",&b[i]);
    20         
    21         int c[m+n+1];
    22         for(i=1;i<=m;i++)
    23             c[i]=a[i];
    24         for(j=m+1,i=1;i<=n;i++)
    25             c[j++]=b[i];
    26         
    27         sort(c+1,c+m+n+1,cmp);
    28         
    29         printf("%d",c[1]);
    30         for(i=2;i<=m+n;i++)
    31             printf(" %d",c[i]);
    32         printf("
    ");
    33     }
    34     return 0;
    35  } 


    易错分析:
    注意sort函数中起始地址和终止地址

  • 相关阅读:
    Eclipse中properties文件中文显示编码、乱码问题
    Eclipse中安装yml插件( YEdit )
    Java中如何返回Json数组
    ASIFormDataRequest 登录
    Safari里使用JsonView
    beginUpdates和endUpdates
    svn log 不显示日志的问题
    svn代码回滚命令
    Tomcat: localhost:8080 提示404
    android定时三种方式
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/6793183.html
Copyright © 2020-2023  润新知