gpt4 book ai didi

c - 索引值不会改变

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

我正在尝试实现一个线性搜索功能来搜索用户“输入”的特定数字,例如用户想要在给定数组中搜索数字 3。该函数应返回索引值 2。但无论我输入什么,我的代码都返回 6。我怀疑我的主要功能有问题(也许当我使用 for 循环时,i 的值固定为 6?)。有什么想法吗?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


#define numberOfElements 6
#define NOT_FOUND -1

int linearSearch (int *myArray, int key, int i);

int main (int argc, char *argv[]){

int i, key, myArray[] = {1, 2, 3, 4, 5, 6};
printf("Input: ");
for (i = 0; i < numberOfElements; i++){
printf("%d ", myArray[i]);
}
printf("\n");
printf("Please enter a number you wish to search for: ");
scanf("%d", &key);
linearSearch (myArray, key, i);
printf("The number %d is at index %d\n", key, i);

return 0;
}


int linearSearch (int *myArray, int key, int i) {

for (i = 0; i < numberOfElements; i++){
printf("Checking index %d\n", i);
if (myArray[i] == key){
printf("%d\n", i);
return i;
break;
}
printf("It's certainly not here!\n");
}

return NOT_FOUND;
}

最佳答案

您忽略了 linearSearch 函数的返回值。因此,您不会打印答案。

请注意,您不应将 i 传递给函数,而应在循环中声明它:

for (int i=0; i<... etc

关于c - 索引值不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116197/

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