我试图逐个元素地比较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)
这很简单
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语句.