将两个一维数组排序,合并到一个一维数组中仍然保持有序,
1条回答 默认 最新
- qzjhjxj 2021-12-19 11:00关注
供参考:
#include<stdio.h> #define N 20 void sort_arry(int *a,int n) { int i,j,tmp; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(a[i] > a[j]) { tmp = a[i]; a[i]= a[j]; a[j]= tmp; } } } } int main() { int a[N],b[N],c[N+N],*p,*q,*r,anum,bnum; scanf("%d",&anum); //数组a[]的元素数 for(p=a;p<a+anum;p++) //输入数组 a[] scanf("%d",p); sort_arry(a,anum); //排序 升序 scanf("%d",&bnum); //数组b[]的元素数 for(q=b;q<b+bnum;q++) //输入数组 b[] scanf("%d",q); sort_arry(b,bnum); //排序 升序 for(p=a,q=b,r=c;p<a+anum && q<b+bnum ;)//升序 合并两个数组到c[] { if(*p>*q) { *r++=*q++; } else { *r++=*p++; } } if(p<a+anum) { for(;p<a+anum;) { *r++=*p++; } } else if(q<b+bnum) { for(;q<b+bnum;) { *r++=*q++; } } for(r=c;r<c+anum+bnum;r++)//输出合并后的数组 c[] { printf("%d ",*r); } return 0; }
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 瑞萨RA4M1芯片刷写为arduino minima
- ¥15 前端vue跟后端java服务部署在线上阿里云服务器
- ¥15 fastreport怎么判断当前页数
- ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
- ¥15 能不能通过蓝牙将传感器数据传送到手机上
- ¥20 100元python和数据科学实验项目
- ¥15 根据时间在调用出列表
- ¥15 R 包chipseeker 安装失败
- ¥15 Veeam Backup & Replication 9.5 还原问题
- ¥15 vue-print-nb