如何比较两个数组,看看它们是否相同?

New*_*e18 1 c arrays compare

我试图逐个元素地比较2个数组,看看它们是否相同.我可以让它适用于除len = 0之外的所有情况.我似乎无法说两个数组a = {}和b = {}是相同的.

这就是我到目前为止所拥有的

int identical( int a[], int b[], unsigned int len )
{
  int same=0;
  for( unsigned int i=0; i<len; i++ )
  {
     if(len==0)
            {
              same=1;
            }

     if (a[i]==b[i])
            {
              same=1;
            } 

             else{
                  same=0;}
   }
return same;
}
Run Code Online (Sandbox Code Playgroud)

Iha*_*imi 5

这很简单

int identical(int *a, int *b, unsigned int len) {
    for (unsigned int i = 0 ; i < len ; ++i) {
        if (a[i] != b[i])
            return 0;
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,您不需要迭代所有值,一旦您发现一个值不等于它在另一个数组中的对应值,您立即返回0,否则总是返回1包括何时len == 0因为在那种情况下会有0次迭代并且代码将直接跳转到return 1语句.

  • 可以用`if(a [i]!= b [i])返回0来缩短它;`. (4认同)