编写函数求数组中第一次出现的负数及其下标,函数通过指针变量做参数返回满足的数组元素值及其下标,如果数组种不存在负数,均返回-1
时间: 2024-03-20 17:44:38 浏览: 64
好的,我来实现这个函数。
```c
void find_first_negative(int *arr, int size, int *value, int *index) {
for (int i = 0; i < size; i++) {
if (arr[i] < 0) {
*value = arr[i];
*index = i;
return;
}
}
*value = -1;
*index = -1;
}
```
这个函数接收一个整型数组 `arr`,数组的大小 `size`,以及两个指针变量 `value` 和 `index`。如果数组中存在负数,则将第一个负数的值存储在 `value` 指向的内存地址中,将其下标存储在 `index` 指向的内存地址中;如果数组中不存在负数,则将 `-1` 存储在 `value` 和 `index` 指向的内存地址中。
你可以这样调用这个函数:
```c
int arr[] = {1, 2, 3, -4, 5};
int value, index;
find_first_negative(arr, 5, &value, &index);
printf("value: %d, index: %d\n", value, index);
```
输出结果为:
```
value: -4, index: 3
```
如果数组中不存在负数,则调用方式如下:
```c
int arr[] = {1, 2, 3, 4, 5};
int value, index;
find_first_negative(arr, 5, &value, &index);
printf("value: %d, index: %d\n", value, index);
```
输出结果为:
```
value: -1, index: -1
```
注意,这个函数假定输入的数组 `arr` 至少包含一个元素。如果 `size` 参数为 `0`,则函数行为未定义。
阅读全文