在c中找到另一个数组中的数组元素

dot*_*dos 1 c arrays

我有两个整数阵列,"a"和"b".我想找到[0],[1]等是否也在b []内.我试过这个:

int emfanisi(int a[], int b[], int x){
   int i, j;
   for(i=0; i<x; i++)
   {
       for(j=0; j<x; j++)
       {
            if(a[i] = b[j])
            {
                return 1;
            }
            else
            {
                return 0;
            }
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

主要是我这样做:

for(i=0; i<2; i++){
   pos = 0;
   pos = emfanisi(a,b,2);
   if(pos = 1)
      printf("The %d number shows in the second array\n", i+1);
   else
      printf("The %d number doesnt show in the second array\n", i+1);
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用!

有人可以指出我的错误吗?

hmj*_*mjd 6

这是作业:

if(a[i] = b[j])
Run Code Online (Sandbox Code Playgroud)

使用==平等检查.注意标记参数const会产生编译器错误:

int emfanisi(const int a[], const int b[], const int x){
Run Code Online (Sandbox Code Playgroud)

后来也有类似的错误:

if (pos = 1) /* Should be == */
Run Code Online (Sandbox Code Playgroud)

注意你可以消除pos:

if(emfanisi(a,b,2))
Run Code Online (Sandbox Code Playgroud)

正如塔法指出的那样,当元素不相等时,不要退出,只有当它们相等时.


为了确定是否包含所有元素,你需要保持匹配的数量(如果找不到元素的话,那将是合适的),如果找到的匹配数等于in中的元素数,则返回除此以外.abibreaka1a0