【C语言】合并两个数组,降序排列并删除重复元素(通俗易懂)

【问题描述】

试着写一个程序,具体内容如下:

建立两个整型数组(int n;scanf(“%d”,&n);int a[n]),将其合并,对他们进行降序排序,去掉相同项,输出处理过后的数组。

【输入形式】

首先第一行输入第一个数组中的长度n,然后输入n个整型数;

然后在第二行输入第二个数组中的长度m,然后输入m个整型数;

【输出形式】

输出降序排列,并且去掉多余元素后的数组。

【样例输入】

5

5 4 3 2 1

5

10 8 6 4 2

【样例输出】

10 8 6 5 4 3 2 1

【样例说明】

每个元素之间都用空格隔开,最后一个元素仍有空格。

总体思路为:1. 将两数组中相同元素多余项赋为0,只留其中一项

2. 合并两数组

3. 考虑还有同一数组中有相同项情况,将合并后数组中相同元素多余项赋为0,只留其中一项

4. 将数组降序排序,此时0都在末尾

5. 数0的个数

6. 遍历到多余0之前的位置,依次输出

代码如下:

#include 

int main(int argc, char* argv[])
{ 
    int m, n, i, j, t, temp, x;
    int s1[20], s2[20], s[40];

//建立两个整型数组,并输入     
    scanf("%d", &n);
    for (i=0; i

博主为初学者,方法较为基础,仅供参考,如有更好方法,欢迎评论区多多交流^ ^

你可能感兴趣的:(算法,c语言,c++,开发语言)