如何在C编程语言中比较两个数组?

Has*_*ima 5 c arrays

我想比较两个不同的数组,它们都是int. 第一个数组是静态的,包含 1 到 10 的数字,第二个数组要求用户输入十个不同的数字,程序会检查两个数组中的哪些元素相等。

#include <stdio.h>

int main(void) {
    int array1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int array2[10];
    int i;

    for (i = 0; i < 11; i++) {
        printf("Enter numbers: ");
        scanf("%d", &array2);
    }

    for (i = 0; i < 11; i++) {
        if (array1[i] != array2[i]) {
            printf("Not equal \n");
        } else {
            printf("They are equal. \n");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

即使我输入的数字等于存储在第一个数组中的数字,程序也总是说不相等。

Ini*_*eer 4

scanf("%d", &array2);
Run Code Online (Sandbox Code Playgroud)

array2从输入获取值时,您永远不会更新索引。

尝试

scanf("%d", &array2[i]);
Run Code Online (Sandbox Code Playgroud)

至于比较,还可以用memcmp内存来比较:

memcmp(array1, array2, sizeof(array1));
Run Code Online (Sandbox Code Playgroud)