C - 给定两个数组,你如何找到其中一个数组的唯一元素的数量?

标签 c arrays

我有一段我一直在研究的代码,它显示 array1 的值,这些值是 array2 的重复项和 array1 中其他值的重复项,但我在计算唯一值的数量时遇到了困难。 [sizeOfA、sizeOfB、a[]、b[]是通过main函数获取的]

int aDupes = 0;
int bDupes = 0;
int i, j, k;

for(i = 0; i < sizeOfA; i++){
    for(j = 0; j < sizeOfB; j++){
        if(a[i] == b[j]){
            bDupes++;
        }
    } 
} 
for(i = 0; i < sizeOfA; i++){
    for(j = i+1; j < sizeOfA; j++){
        for(k = 0; k < sizeOfB; k++){
            if(a[i] == a[j] && a[i] == b[k]){
                aDupes++;
            }
        }
    }
}

例如 a[] = {1, 3, 3, 5, 6, 7, 8} b[] = {1, 3, 8, 2} 会返回 aDupes = 1 ; bDupes = 4。但是唯一元素的数量应该是 3 (5, 6, 7)。我该怎么做?

最佳答案

int flag=0,unique=0;
for(i = 0; i < sizeOfA; i++){
for(j = i+1; j < sizeOfA; j++){
    for(k = 0; k < sizeOfB; k++){
        if(a[i] != a[j] && a[i] != b[k]){
            flag++;
        }
    }
 }
 if (flag==0){
     unique++;
  } 
 flag=0;
}

这个unique变量将给出数组a的唯一元素的值

关于C - 给定两个数组,你如何找到其中一个数组的唯一元素的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40355137/

相关文章:

c - C 中半已知输入的指针与数组

arrays - Swift 数组/字典未按预期顺序打印

c - 如何在c中的char数组中复制uint8_t数组

c - 1048576 以内的所有数字的位数都是错误的

java - 如何在Java中从C文件中获取方法和参数的名称?

arrays - 将整个数组从 int 转换为 double 以进行一些算术运算

arrays - Smalltalk阵列类型

c# - 在 C# 中读取数组列

C - 'malloc' 似乎无法正常工作

C 成语和鲜为人知的事实