华为机试题80-整型数组合并

描述

题目标题:

将两个整型数组按照升序合并,并且过滤掉重复数组元素。

输出时相邻两数之间没有空格。

输入描述:

输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数
4 输入第二个数组的数值

输出描述:

输出合并之后的数组

示例1

输入:

3
1 2 5
4
-1 0 3 2

输出:

-101235


这题也比较简单,用最笨的方法暴力求解,而且我只用一个数组,循环输入两次数组数据即可。

在存放新输入的整型元素之前,对比之前已经存储了的数组元素,如果和之前存储了的元素重复,则不再存储,否则进行存储。

将两组整型数据存储好后,随便用什么排序算法进行排序就行,笔者使用的是冒泡排序算法,代码如下:

#include <stdio.h>
#define    N    1000
int main()
{
    int arr[N],m,i=0,j,temp,k=2;
    while(k>0)
    {
        scanf("%d",&m);
        while(m>0)
        {
            scanf("%d",&temp);
            if(i==0)
            arr[i++]=temp;
            else
            {
                for(j=0;j<i;j++)
                {
                    if(temp==arr[j])
                        break;
                }
                if(j==i)
                    arr[i++]=temp;
            }
            m--;
        }
        k--;
    }
    m=i;
    //sort
    for(i=0;i<m-1;i++)
    {
        for(j=0;j<m-1-i;j++)
        {
            if(arr[j]>arr[j+1])
            {
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    for(i=0;i<m;i++)
    {
        printf("%d",arr[i]);
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值