解题思路:

第一行输入的m和n为合并数组的总长度,考虑直接创建长度为m+n的整型数组arr,把第二三行输入的整数直接放到arr里,然后对其进行排序后再输出即可。本题使用选择排序算法。


//选择排序法
void sort(int* p,int size){
    int i,j,k;
    
    for(i = 0; i < size - 1; i++){ //排序趟数
        k = i; //假设最小元素下标为i
        for(j = i + 1; j < size; j++){
            if(*(p+j) < *(p+k))
                k = j;
        }
        if(k != i){
            int temp = *(p+i);
            *(p+i) = *(p+k);
            *(p+k) = temp;
        }
    } 
}

int main(){
    int n,m;
    
    //输入
    scanf("%d%d",&n,&m);
    //将两个序列合并为一个数组
    int size = m+n; 
    int arr[size];
    int i;
    for(i = 0; i < size; i++){
        scanf("%d",&arr[i]);
    }
    
    //排序
    sort(arr,size);
    
    //输出
     for(i = 0; i < size; i++){
        printf("%d ",arr[i]);
    }
    
    return 0;
}