题解 | #整型数组合并#

整型数组合并

http://www.nowcoder.com/practice/c4f11ea2c886429faf91decfaf6a310b

/*
合并数组后快速排序
打印过的数不再打印
*/

#include<stdio.h>
#include<string.h>

int cmp(const void *a, const void *b){
    if(*(int*)a > *(int*)b) return 1;
    else return -1;
}

int main(){
    int n1 = 0;
    scanf("%d\n",&n1);
    int nums1[n1];
//接收第一个数组
    for(int i = 0; i < n1; i++){scanf("%d",&nums1[i]);}
    int n2 = 0;
    scanf("%d\n",&n2);
    int n3 = n1 + n2;
    int nums2[n3];
//合并第一个数组到新数组
    for(int i = 0; i < n1; i++){
        nums2[i] = nums1[i];
    }
//接收第二个数组到第一个数组末尾
    for(int i = n1; i < n3; i++){scanf("%d",&nums2[i]);}
//快速排序
    qsort(nums2,n3,sizeof(int),cmp);
//重复值不打印,防止第一个数字出现问题,额外先打印第一个数
    int temp = nums2[0];
    printf("%d",nums2[0]);
    for(int i = 1; i < n3; i++){
        if(nums2[i]!=temp){
            printf("%d",nums2[i]);
            temp = nums2[i];
        }
    }
    return 0;
}

全部评论

相关推荐

2 2 评论
分享
牛客网
牛客企业服务