zouhf 发表于 2019-12-5 16:15:46

数组合并

a,b为升序整型数组,长度分别为lena和lenb,编写一个函数int merge(int a[],int lena,int b[],int lenb,int c[]),将a,b中的数合并到c中,并使c中保持升序排列,函数返回存入c中元素的个数

1851053336 发表于 2019-12-5 17:28:36

jackz007 发表于 2019-12-5 18:39:04

本帖最后由 jackz007 于 2019-12-5 18:40 编辑

#include <stdio.h>

int merge(int a[] , int lena , int b[] , int lenb , int c[])
{
      int d , i , j                           ;
      for(d = 0 , i = 0 , j = 0 ; i < lena && j < lenb ;) {
                if(a < b) c = a ;
                else c = b            ;
      }
      for(; i < lena ;) c = a       ;
      for(; j < lenb ;) c = b       ;
      return d                                  ;
}

main(void)
{
      int a[] = {1 , 3 , 5 , 7 , 9 , 11 , 13 , 51 , 53 , 55}            ;
      int b[] = {2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 52 , 54} ;
      int c                                                         ;
      int d , k                                                         ;
      d = merge(a , 10 , b , 12 , c)                                    ;
      for(k = 0 ; k < d ; k ++) {
                if(! (k % 5)) {
                        if(k) printf("\n")                              ;
                        printf("\t")                                    ;
                } else {
                        printf(" , ")                                     ;
                }
                printf("%2d" , c)                                    ;
      }
      printf("\n\n")                                                    ;
}
      编译、运行实况
C:\Bin>g++ -o qx qx.c

C:\Bin>qx
         1 ,2 ,3 ,4 ,5
         6 ,7 ,8 ,9 , 10
      11 , 12 , 13 , 14 , 16
      18 , 20 , 51 , 52 , 53
      54 , 55


C:\Bin>
页: [1]
查看完整版本: 数组合并