指针实现查找,写出一通用函数,键盘输入的一个数是否在一维数组中。若找到,返回该数在数组中的下标值,否则返回-1
时间: 2024-02-20 16:01:44 浏览: 70
指针和一维数组
好的,下面是一个通用函数的实现:
```c
int findInArray(int *arr, int len, int target) {
for (int i = 0; i < len; i++) {
if (*(arr + i) == target) {
return i;
}
}
return -1;
}
```
这个函数接受三个参数:一个指向数组首元素的指针 `arr`,数组的长度 `len`,以及要查找的目标数 `target`。
函数遍历整个数组,如果找到了目标数,就返回它在数组中的下标;如果遍历完整个数组都没有找到,就返回 -1。
我们可以在主函数中使用这个函数来查找一个数是否在数组中:
```c
int main() {
int arr[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int len = sizeof(arr) / sizeof(arr[0]);
int target;
printf("请输入要查找的数:");
scanf("%d", &target);
int index = findInArray(arr, len, target);
if (index == -1) {
printf("数组中不存在该数\n");
} else {
printf("该数在数组中的下标为 %d\n", index);
}
return 0;
}
```
这里定义了一个包含 9 个元素的数组,然后从键盘输入要查找的数 `target`,并调用 `findInArray` 函数来查找。如果返回值为 -1,则说明数组中不存在该数;否则就输出该数在数组中的下标。
阅读全文