#include<stdio.h>
#define N 10
#define M 10
int com(int *a, int *b, int *c)
{
int i = 0, j = 0, t = 0, res = 0;
while (i < N && j < M)
{
if (a[i] < b[j]) c[t++] = a[i++];
else if (a[i] > b[j]) c[t++] = b[j++];
else
{
c[t++] = a[i++];
j++, res++;
}
}
while (i < N) c[t++] = a[i++];
while (j < M) c[t++] = b[j++];
return res;
}
int main()
{
int a[] = { 3, 6, 7, 18, 23, 33, 35, 43, 48, 78 };
int b[] = { 2, 7, 13, 21, 33, 37, 48, 50, 58, 67 };
int c[N + M];
int res = com(a, b, c);
for (int i = 0; i < N + M - res; i++)
printf("%d ", c[i]);
printf("\ncount=%d\n", res);
return 0;
}
追问谢谢,题目说还要把相同的数删掉,这个怎么办呢
追答#include<stdio.h>
#define N 10
#define M 10
int com(int *a, int *b, int *c)
{
int i = 0, j = 0, t = 0, res = 0;
while (i < N && j < M)
{
if (a[i] < b[j]) c[t++] = a[i++];
else if (a[i] > b[j]) c[t++] = b[j++];
else i++, j++, res++;
}
while (i < N) c[t++] = a[i++];
while (j < M) c[t++] = b[j++];
return res;
}
int main()
{
int a[] = { 3, 6, 7, 18, 23, 33, 35, 43, 48, 78 };
int b[] = { 2, 7, 13, 21, 33, 37, 48, 50, 58, 67 };
int c[N + M];
int res = com(a, b, c);
for (int i = 0; i < N + M - res - res; i++)
printf("%d ", c[i]);
printf("\ncount=%d\n", res);
return 0;
}