c语言实验把B表中的每个元素取出来,在A表中做一次定位查找,如果它不在A表中,就将它放入,否则就不放入。

2023-12-11 20:48:15 浏览数 (4)

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;
}

演示截图

1 人点赞