所以,我有一个任务要求我比较 2 个整数数组(a[5] 和 b[8])并使用指针检查重复的元素。到目前为止,这是我想出的代码:
int main(void) {
int *pa, i, j, sizeA=5, sizeB=8, a[sizeA], b[sizeB], aux[sizeB];
for (i=0; i<sizeA; i++){
scanf("%d", &a[i]);
}
for (i=0; i<sizeB; i++){
scanf("%d", &b[i]);
}
for (i=0; i<sizeB; i++){
aux[i] = NULL;
}
for(i=0;i<sizeA; i++){
for(j=0; j<sizeB; j++){
if ((a[i] == b[j]))
aux[i] = b[j];
}
}
for(i=0;i<sizeA; i++){
pa = &aux[i];
if ((pa != NULL)&&(*pa!=aux[i+1])){
printf("%d \n", *pa);
}
}
return (EXIT_SUCCESS);
}
它编译并运行没有错误,但是当没有重复元素时,最后一个 for 循环会打印出奇怪的值,例如 435304。
我试图让指针“pa”扫描数组“aux”,只打印与数组中下一个元素不同的元素,并检查指针指向的位置是否为空。
有小费吗?
编辑:我解决了它用 NULL 值初始化辅助数组。它算作有效的解决方案吗?有更好的方法吗?
EDIT2:感谢所有帮助过我的人。祝你今天过得愉快。