用C语言编程:随机产生30个互不相同的三位正整数给数组A,再随机产生30个互不相同的三位正整数给数组B,编程将两个数组中互不相同的元素合并放在数组C中,分别输出三个数组的内容
时间: 2024-03-25 09:39:56 浏览: 59
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 30
int main()
{
int A[SIZE], B[SIZE], C[SIZE * 2];
int i, j, k, flag;
srand(time(NULL)); // 初始化随机数种子
// 生成数组A
for(i = 0; i < SIZE; i++)
{
do {
A[i] = rand() % 900 + 100; // 生成三位正整数
flag = 0;
for(j = 0; j < i; j++)
{
if(A[i] == A[j]) // 判断是否重复
{
flag = 1;
break;
}
}
} while(flag == 1);
}
// 生成数组B
for(i = 0; i < SIZE; i++)
{
do {
B[i] = rand() % 900 + 100; // 生成三位正整数
flag = 0;
for(j = 0; j < i; j++)
{
if(B[i] == B[j]) // 判断是否重复
{
flag = 1;
break;
}
}
for(j = 0; j < SIZE; j++)
{
if(B[i] == A[j]) // 判断是否与数组A中元素重复
{
flag = 1;
break;
}
}
} while(flag == 1);
}
// 合并数组A和数组B中的元素到数组C中
k = 0;
for(i = 0; i < SIZE; i++)
{
C[k] = A[i];
k++;
for(j = 0; j < SIZE; j++)
{
if(B[j] == A[i]) // 判断是否与数组A中元素重复
{
break;
}
}
if(j == SIZE) // 如果不重复,则加入数组C中
{
C[k] = B[j];
k++;
}
}
for(i = 0; i < SIZE; i++)
{
for(j = 0; j < SIZE; j++)
{
if(A[i] == B[j]) // 判断是否与数组B中元素重复
{
break;
}
}
if(j == SIZE) // 如果不重复,则加入数组C中
{
C[k] = A[i];
k++;
}
}
for(i = 0; i < SIZE; i++)
{
C[k] = B[i];
k++;
}
// 输出数组A
printf("数组A:\n");
for(i = 0; i < SIZE; i++)
{
printf("%d ", A[i]);
}
printf("\n");
// 输出数组B
printf("数组B:\n");
for(i = 0; i < SIZE; i++)
{
printf("%d ", B[i]);
}
printf("\n");
// 输出数组C
printf("数组C:\n");
for(i = 0; i < SIZE * 2; i++)
{
printf("%d ", C[i]);
}
printf("\n");
return 0;
}
```
程序首先生成数组A和数组B,保证其中元素互不相同。然后将数组A和数组B中互不相同的元素合并到数组C中,并分别输出三个数组的内容。
阅读全文