• 华为OJ平台试题 ——数组:整形数组合并



    代码:

    /*
     * 将两个整型数组依照升序合并,而且过滤掉反复数组元素
     */
    
    #include <stdio.h>
    
    #define  N 256
    #define  M 512
    
    /*
     * 合并数组。删除反复的,并排序
     */
    
    int CombineBySort(int Array1[], int iArray1Num,int Array2[], int iArray2Num,int OutputArray[], int  iOutputNum)
    {
    	int i, j,t;
    	int tmp;
    
    	iOutputNum = 1;
    
    	OutputArray[0] = Array1[0];
    
    	/* 将数组1 复制给输出数组,并去掉同样的数字 */
    	for( t = 1; t < iArray1Num; t++)
    	{
    		for(i = 0; i < iOutputNum; i++ )
    		{
    			if(OutputArray[i] == Array1[t] ) break;
    			else if  (OutputArray[i] != Array1[t] && ( i == iOutputNum - 1 ) )
    			{
    				OutputArray[iOutputNum] = Array1[t];
    				iOutputNum++;
    			}
    		
    		}
    		
    	}
    	
    	/* 将数组2中的每一个数与数组1中的进行比較假设不同。则增加到输出数组,假设同样,退出 */
    	for(  i = 0; i < iArray2Num; i++ )
    	{
    		for( j = 0; j < iOutputNum; j++ )
    		{
    			if( OutputArray[j]  == Array2[i] ) break;
    			else if( OutputArray[j]  != Array2[i] &&  j == (iOutputNum - 1)  )
    			{
    					OutputArray[iOutputNum] =  Array2[i];	
    					iOutputNum++;
    			}
    
    		}
    	
    	}
    
    	
    	/* 进行排序 */
    	for(i = 0; i < iOutputNum; i++ )
    	{
    		for( j = i; j < iOutputNum; j++)
    		{
    			if( OutputArray[i] > OutputArray[j])
    			{
    				tmp = OutputArray[i];
    				OutputArray[i] = OutputArray[j];
    				OutputArray[j] = tmp;				
    			}
    		
    		}
    	}
    
    
    	return iOutputNum;
    }
    
    
    
    
    int main(void)
    {
    	int  Array1Num, Array2Num, OutputNum = 0; /* Array1Num 第一个数组元素个数, Array2Num 第二个数组元素个数 */
    	
    	int  aArray1[N]= {0}, aArray2[N]= {0}, aOutputArray[M]= {0};
    	
    	int  i, j, k;
    
    	scanf("%d", &Array1Num);
    	for(i = 0; i < Array1Num; i++)
    	{
    		scanf("%d", &aArray1[i] );	
    	}
    
    	scanf("%d", &Array2Num);
    	for( j = 0; j < Array2Num; j++)
    	{
    		scanf("%d", &aArray2[j] );	
    	}
    		
    	OutputNum = CombineBySort(aArray1, Array1Num, aArray2, Array2Num, aOutputArray, OutputNum);
    
    	for(k = 0; k < OutputNum; k++)
    	{
    		printf("%d", aOutputArray[k]);
    	}
    		
    	return 0;
    }


  • 相关阅读:
    Debian vim没有颜色的解决办法
    第四次作业
    第三次作业
    第二次作业
    Mad Libs游戏 & 华氏温度与摄氏温度转换
    有趣故事
    Mybatis的使用及增删改查
    jdbc数据连接池
    详解MySQL数据类型
    SQL语法大全
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6949837.html
Copyright © 2020-2023  润新知