解题思路:
注意事项:
参考代码:
#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 人评分
#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; }
2^k进制数 (C++代码)使用递归方法浏览:721 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:3392 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:525 |
printf基础练习2 (C语言代码)浏览:941 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:817 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:545 |
a+b浏览:432 |
数字游戏 (C++代码)浏览:1178 |
剪刀石头布 (C++代码)浏览:1703 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:679 |