m0_63590850 2021-11-02 20:50 采纳率: 100%
浏览 222
已结题

C语言:调用函数,合并数组

用户输入两个有序的数组,请合并成一个有序数组输出。如用户输入: 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);
     
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月2日