我想比较两个不同的数组,它们都是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)
即使我输入的数字等于存储在第一个数组中的数字,程序也总是说不相等。
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)