
程序是在给定数据中查找一个数据是否存在,但是我的运行结果是错误的,我想问一下哪里出错了并且如何修改
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据你提供的图片,代码的目的是在一个整数数组中查找特定值(search_num)并返回其索引,如果找不到则返回-1。看起来你的代码有一个小错误,即在循环条件中使用了错误的变量。你使用了i而不是j来检查是否到达数组的末尾。
下面是修正后的代码:
#include <stdio.h>
int search(int arr[], int size, int search_num) {
for (int j = 0; j < size; j++) { // 使用 j 而不是 i
if (arr[j] == search_num) {
return j;
}
}
return -1;
}
int main() {
int data[] = {1, 2, 3, 4, 5};
int size = sizeof(data) / sizeof(data[0]);
int num_to_find = 6;
int result = search(data, size, num_to_find);
printf("Index is: %d\n", result);
return 0;
}
在原始代码中,for (int i = 0; i < size; i++) 是用于遍历数组的,但在循环内部,你应该使用 arr[j] 而不是 arr[i]。我已经修正了这个问题。现在,这段代码将正确地遍历数组并查找指定的数值。如果找到,它会返回该值的索引;否则,返回-1。在这个例子中,因为数组中没有值为6的元素,所以输出应该是 "Index is: -1"。