基于C语言判断两个数组是否元素相同
基于C语言判断两个数组是否元素相同
只需要两个循环,外层循环遍历a数组,内层循环判断该元素在b数组中能否查找到相同元素,如果查找到需要把一个标记数组对应位置为1
代码
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n;
printf("Enter the n:");
scanf_s("%d",&n,sizeof(int));
int* a = (int*)malloc(n * sizeof(int));
int* b = (int*)malloc(n * sizeof(int));
int* flag_b = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
flag_b[i] = 0;
}
printf("Enter array a:");
for (int i = 0; i < n; i++) {
scanf_s("%d",a + i, n * sizeof(int));
}
printf("Enter array b:");
for (int i = 0; i < n; i++) {
scanf_s("%d", b + i,n * sizeof(int));
}
int i;
for (i = 0; i < n; i++) {
int temp = a[i];
int j;
for (j = 0; j < n; j++) {
if (flag_b[j] == 0 && temp == b[j]) {
flag_b[j] = 1;
break;
}
}
if (j >= n) {
break;
}
}
if (i >= n) {
printf("YES!\n");
}
else {
printf("NO!\n");
}
free(a);
free(b);
free(flag_b);
return 0;
}
运行截图