c语言编写函数find,传入数组a、a中有效数据的个数,以及数据x,在a中查找x是否存在,若存在,则返回数组a中最大数的位置下标,否则返回-1。
时间: 2024-10-20 14:12:34 浏览: 23
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
在C语言中,你可以创建一个名为`find`的函数来完成这个任务。首先,你需要检查输入的有效性,然后遍历数组寻找目标值。如果找到,更新最大值的索引;如果没有找到,最后返回-1。下面是一个简单的示例函数:
```c
#include <stdio.h>
#include <limits.h>
// 函数声明
int find(int a[], int n, int x);
// 主函数演示如何使用find函数
int main() {
int arr[] = {1, 5, 7, 9, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 9;
int result = find(arr, n, target);
if (result != -1)
printf("元素 %d 存在于数组中,其位置下标为 %d\n", x, result);
else
printf("%d 在数组中不存在。\n", target);
return 0;
}
// 实现 find 函数
int find(int a[], int n, int x) {
int max_idx = -1; // 初始化最大值索引为-1
for (int i = 0; i < n; i++) {
if (a[i] == x) { // 如果找到目标值
if (max_idx == -1 || a[i] > a[max_idx]) // 检查是否比当前最大值大
max_idx = i; // 更新最大值索引
}
}
return max_idx; // 返回最大值的索引或-1
}
```
在这个`find`函数中,我们遍历数组,并在每次遇到`x`时检查它是否大于当前的最大值。如果是,则更新`max_idx`。如果遍历完整个数组都没有找到`x`,则返回-1。
阅读全文