gpt4 book ai didi

c - 使用 C 查找元素是否在数组中(语法问题)

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:44 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来检查某个元素是否是 C 中的数组。我这里有一个函数,但它总是返回 0,因此我们将不胜感激任何调试帮助:

#include <stdio.h>
int array[] = {1, 2, 3};
int *parray = &array;
int j;
int n = sizeof(array)/sizeof(array[0]);

int ifInList(int array[], int n){
for (j = 0; j < n; j++){
if (array[j] == n){
return 1;
}
}
return 0;
}

int main(){
printf("The number is %d \n", ifInList(&array[n], 1));
return 0;
}

最佳答案

您搜索的有误:

ifInList(&array[n], 1);

arr[0] arr[1] .... a[n-1] a[n]
<----Search only these many elements ---> ^~~~You are searching unreserved address.

访问 a[n] 可能会导致很难调试的错误。你一开始就不应该这样做。

正确的代码:

ifInList(array, sizeOfArray, valueToFind);  //searches in the complete array

for (j = 0; j < sizeOfArray; j++){ //Loop
if (array[j] == valueToFind){

另一个重要的建议是,尽量避免在不需要时使用全局变量。

关于c - 使用 C 查找元素是否在数组中(语法问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com