解题思路:
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int n, m;
while (~scanf("%d %d", &n, &m)) //输入n,m
{
int a[n+m+1],b[m]; //定义数组,后面将b加到a后面所以a的大小设为m+n
int i, k = 0, j, t = 0;
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < m; i++)
scanf("%d", &b[i]);
for (i = n; i < m + n; i++)
a[i] = b[k++]; //将b加到a后面
for (i = 0; i < n + m - 1; i++) //冒泡排序使a中的数从小到大排列
{
for (j = 0; j <= n + m - i - 2; j++)
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (i = 0; i < n + m - 1; i++) //查重 如果重复将后面的赋为-1,注意:不能赋为0
{
for (j = i + 1; j < n + m; j++)
if (a[j] == a[i])
a[j] = -1;
}
for (i = 0; i < m + n; i++) //输出
if (a[i]!=-1)
printf("%d ", a[i]);
printf("\n");
}
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> void sort(int arr[], int x) { for (int i = 0; i < x; i++) { scanf("%d", &arr[i]); } for (int i = 1; i < x; i++) { for (int j = 0; j < x - i; j++) { if (arr[j] > arr[j + 1]) { int t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } } int main() { int n, m; int arr[20000] = { 0 }; while (scanf("%d %d", &n, &m) != EOF) { sort(arr, m + n); for (int i = 0; i < m + n; i++) { if (arr[i] != arr[i + 1]) printf("%d ", arr[i]); } printf("\n"); } return 0; }