C语言编程题检查两个数组是否相等

C语言中,检查两个数组是否相等通常可以多种方法,如逐个元素比较法、memcmp函数比较法、数组指针比较法和使用memcmp和sizeof结合法等,可以根据需求选择合适的方法,

1、逐个元素比较法

遍历两个数组的每个元素,并逐个比较它们的值。

#include <stdio.h>
#include <stdbool.h>

bool arraysEqual(int arr1[], int arr2[], int size) {
    for (int i = 0; i < size; ++i) {
        if (arr1[i] != arr2[i]) {
            return false;
        }
    }
    return true;
}

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr1) / sizeof(arr1[0]);

    if (arraysEqual(arr1, arr2, size)) {
        printf("Arrays are equal.\n");
    } else {
        printf("Arrays are not equal.\n");
    }

    return 0;
}

2、memcmp函数比较法

使用memcmp函数直接比较两个数组的内容是否相等。

#include <stdio.h>
#include <string.h>

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr1);

    if (memcmp(arr1, arr2, size) == 0) {
        printf("Arrays are equal.\n");
    } else {
        printf("Arrays are not equal.\n");
    }

    return 0;
}

3、数组指针比较法

比较两个数组的指针是否相同。

#include <stdio.h>

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[] = {1, 2, 3, 4, 5};

    if (arr1 == arr2) {
        printf("Arrays are equal.\n");
    } else {
        printf("Arrays are not equal.\n");
    }

    return 0;
}

4、使用memcmp和sizeof结合法

结合使用memcmpsizeof来确保比较整个数组的内容。

#include <stdio.h>
#include <string.h>

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[] = {1, 2, 3, 4, 5};

    if (memcmp(arr1, arr2, sizeof(arr1)) == 0) {
        printf("Arrays are equal.\n");
    } else {
        printf("Arrays are not equal.\n");
    }

    return 0;
}

5、使用循环和标志位法

使用循环遍历数组并使用标志位进行比较。

#include <stdio.h>
#include <stdbool.h>

bool arraysEqual(int arr1[], int arr2[], int size) {
    bool equal = true;
    for (int i = 0; i < size; ++i) {
        if (arr1[i] != arr2[i]) {
            equal = false;
            break;
        }
    }
    return equal;
}

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr1) / sizeof(arr1[0]);

    if (arraysEqual(arr1, arr2, size)) {
        printf("Arrays are equal.\n");
    } else {
        printf("Arrays are not equal.\n");
    }

    return 0;
}

推荐阅读
cjavapy编程之路首页