c语言实验:经典数组合并
实现思路:
1、判断表是否为空
2、取出b表每一个元素
3、将取出的每一个元素与a表进行匹配,如果能够匹配到说明元素存在 不添加。跳出继续匹配下一次
4、如果 标记不存在。那么添加元素到末尾。
具体实现代码:
代码语言:c复制#include <stdio.h>
int main() {
//把B表中的每个元素取出来,在A表中做一次定位查找,如果它不在A表中,就将它放入,否则就不放入。
char A[] = {'C', 'a', 't', '0', '0', '0', '1', '1', 'c', 'a', 't'};
char B[] = {'C', 'a', 't', '0', '0', '0', '1', '1', 'x', 'y', 'z'};
int ALength = sizeof(A) / sizeof(A[0]); // 数组A的长度
int BLength = sizeof(B) / sizeof(B[0]); // 数组B的长度
// 放入元素后的A表元素输出看一下
printf("添加元素前的序列:n");
for (int i = 0; i < ALength; i ) {
printf("%c ", A[i]);
}
printf("n");
printf("ALength:%dn", ALength);
if (ALength != 0 || BLength != 0) {
for (int i = 0; i < BLength; i ) {
int isOn = 0; // 标记是否找到元素
for (int j = 0; j < ALength; j ) {
if (B[i] == A[j]) { // 元素存在
isOn = 1;
break; // 跳出 继续找下一个
}
}
if (!isOn) { // 元素不存在
A[ALength] = B[i]; // 将元素放入A表末尾
ALength ; // 增加A表长度,,跳出继续找
}
}
} else {
printf("err,空表");
}
// 添加元素后的A表元素输出看一下
printf("添加元素后的序列:n");
for (int i = 0; i < ALength; i ) {
printf("%c ", A[i]);
}
printf("n");
printf("ALength:%dn", ALength);
return 0;
}