可以将两个数组按元素值排序,然后逐个比较它们的元素是否相等。代码示例如下:
#include
int cmpfunc(const void * a, const void * b) { return ( (int)a - (int)b ); }
int compare_arrays(int arr1[], int arr2[], int size) { qsort(arr1, size, sizeof(int), cmpfunc); qsort(arr2, size, sizeof(int), cmpfunc);
for (int i = 0; i < size; i++) {
if (arr1[i] != arr2[i]) {
return 0;
}
}
return 1;
}
int main() { int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = {3, 2, 1, 5, 4}; int size = sizeof(arr1) / sizeof(arr1[0]);
int isEqual = compare_arrays(arr1, arr2, size);
if (isEqual) {
printf("The two arrays are equal.\n");
} else {
printf("The two arrays are not equal.\n");
}
return 0;
}
上述代码将数组arr1和arr2按升序排序,再以此为基础逐个比较它们的元素是否相等。如果两个数组相等则返回1(真),否则返回0(假)。程序输出的结果将打印到console上。
下一篇:比较两个数组,获取行号