C语言编写函数find,传入数组a、a中有效数据的个数,以及数据x,在a中查找x是否存在,若存在,则返回数组a中最大数的位置下标,否则返回-1。
时间: 2024-10-20 12:12:32 浏览: 24
301-用指针数组作为函数的参数显示多个字符串(51单片机C语言实例Proteus仿真和代码)
在C语言中,你可以创建一个名为`find`的函数,其功能如下:
```c
#include <stdio.h>
int find(int a[], int n, int x) {
// 首先检查输入的有效性
if (n <= 0 || !a) {
return -1; // 如果数组为空或者元素个数小于等于0,直接返回-1表示未找到
}
// 初始化最大值的位置和遍历索引
int max_index = 0;
for (int i = 0; i < n; ++i) {
// 如果当前元素等于x并且大于已知的最大值
if (a[i] == x && a[i] > a[max_index]) {
max_index = i; // 更新最大值的位置
}
}
// 如果找到x,返回最大值的位置;否则返回-1
return (a[max_index] == x) ? max_index : -1;
}
// 示例用法
int main() {
int array[] = {5, 8, 3, 9, 6};
int n = sizeof(array) / sizeof(array[0]);
int target = 9;
int result = find(array, n, target);
if (result != -1) {
printf("Element %d found at index %d\n", target, result);
} else {
printf("%d not found in the array.\n", target);
}
return 0;
}
```
在这个`find`函数中,我们首先检查数组是否有效,然后遍历数组,如果找到目标元素且比当前最大值大,就更新最大值的位置。最后,如果找到目标元素,返回最大值位置,否则返回-1。
阅读全文