1 条题解

  • 0
    @ 2025-4-12 21:47:19

    C :

    #include<stdio.h>
    int main()
    {
       int a[100],b[100],c[200];
       int i,j,m,n,k;
      while(scanf("%d",&m)!=EOF)
      {
        for(i=0;i<m;i++)
    	{
    	scanf("%d",&a[i]);
    	}
       
    	scanf("%d",&n);
    	for(j=0;j<n;j++)
    	{
    	scanf("%d",&b[j]);
    	}
        
    	i=j=k=0;
    	while(i<m&&j<n)
    	{
    	   if(a[i]<=b[j])
    		   c[k++]=a[i++];
    	   else
               c[k++]=b[j++];
    	
    	}
    	if(i<m)  
    	{
    	for(;i<m;i++,k++)
    		c[k]=a[i];
    	
    	}
    	if(j<n)
    	{
    	for(;j<n;j++,k++)
            c[k]=b[j];
    	}
      for(i=0;i<k;i++)
      {   if(i)
           putchar(' ');
    	  printf("%d",c[i]);
      }
      putchar('\n');
      }
       return 0;
    }
    

    C++ :

    #include <stdio.h>
    
    int main(){
    
    	int m, n;
    	int La[100], Lb[100], Lc[200];	// 定义存储空间,Lc需要La和Lb总和的空间
    	int i, j, k;
    	while(scanf("%d", &m) != EOF){
    
    		// 读入 La
    		for(i=0;i<m;i++){
    			scanf("%d", &La[i]);
    		}
    
    		// 读入 Lb
    		scanf("%d", &n);
    		for(i=0;i<n;i++){
    			scanf("%d", &Lb[i]);
    		}
    
    		// 归并
    		i = j = k = 0;
    		while(i<m && j<n){
    			if(La[i] < Lb[j]){
    				Lc[k] = La[i];
    				i++;
    			}else{
    				Lc[k] = Lb[j];
    				j++;
    			}
    			k++;
    		}
    
    		// 处理没有在归并中处理的数据
    		while(i < m){
    			Lc[k++] = La[i++];
    		}
    		while(j < n){
    			Lc[k++] = Lb[j++];
    		}
    
    		// 输出结果
    		for(k=0;k<m+n;k++){
    			if(k){
    				putchar(' ');
    			}
    			printf("%d", Lc[k]);
    		}
    
    		putchar('\n');
    	}
    
    	return 0;
    }
    
    

    Java :

    import java.util.*;
    public class Main {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
         ;
    		int m,n,i,j1,j2;
    		int[] a=new int[100];
    		int[] b=new int[100];
    		int[] ab=new int [200];
    		while(in.hasNext()){
      			j1=0;
    			j2=0;
    			m=in.nextInt();
    			for(i=0;i<m;i++){
    				a[i]=in.nextInt();
    			}
    			n = in.nextInt();
    			for(i=0;i<n;i++){
    				b[i] =in.nextInt();
    			}
    			for(i=0;i<m+n;i++){
    				if((j1<m&&j2<n&&a[j1]<b[j2])||(j1<m&&j2>=n)){
    					ab[i]=a[j1++];
    				}else{
    					ab[i]=b[j2++];
    				}
    			}
    			for(i=0;i<m+n;i++){
    				System.out.print(ab[i]);
    				if(i<m+n-1)
    					System.out.print(" ");
    				else 
    					System.out.println();
    			}
              if(m==0&&n==0) System.out.println();
    		}
    	}
    }
    
    
    • 1

    信息

    ID
    1663
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者