用户输入两个有序的数组,请合并成一个有序数组输出。如用户输入: 1,4,5 和 2,3,8, 则输出:1,2,3,4,5,8。
4条回答 默认 最新
- 广大菜鸟 2021-11-02 21:56关注
直接在插入的时候判断就行了
#include<stdio.h> #include<stdlib.h> int main(){ int a[]={1,4,5}; int b[]={2,3,8}; int a_num=sizeof(a)/sizeof(int), b_num = sizeof(b)/sizeof(int); int*c = (int*)malloc(sizeof(int)*(a_num+b_num)); int i,j,index=0; for(i=0,j=0;i<a_num&&j<b_num;){ if(a[i]<b[j]){ c[index++]=a[i++]; }else{ c[index++]=b[j++]; } } while(i<a_num){ c[index++]=a[i++]; } while(j<b_num){ c[index++]=b[j++]; } for(i=0;i<index;i++){ printf("%d ",c[i]); } printf("\n"); free(c); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报