c语言中合并两个降序数组,使合并后的数组仍然保持降序排列

如题所述

#include<stdio.h>

#include<stdlib.h>

#define N 100

int cmp(const void*a,const void*b)

{//快速排序比较函数 

int *x=(int*)a;

int *y=(int*)b;

return *y-*x;

}

int main()

{

int a[N]={9,7,5,3,1};

int b[N]={8,6,4,2,0};

int sum[2*N]={0};//合并数组 

int k=0;//合并数组元素个数的计数 

for(int i=0;i<5;i++)

{

sum[k++]=a[i];//a数组元素赋值给sum数组 

}

for(int i=0;i<5;i++)

{

sum[k++]=b[i];//b数组元素赋值给sum数组 

}

qsort(sum,10,sizeof(sum[0]),cmp);//降序排序 

for(int i=0;i<k;i++)//输出 

printf("%d ",sum[i]);

return 0;

}

温馨提示:答案为网友推荐,仅供参考