题解 | #整型数组合并#
整型数组合并
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; }