编写函数求数组中第一次出现的负数及其下标,函数通过指针变量做参数返回满足条件的数据元素值及其下标,如果数组中不存在负数,均返回-1
时间: 2024-03-20 07:42:32 浏览: 54
好的,我已经记录下来了。下面是代码实现:
```c
int findFirstNegative(int* arr, int len, int* index)
{
for(int i = 0; i < len; i++)
{
if(arr[i] < 0)
{
*index = i;
return arr[i];
}
}
*index = -1;
return -1;
}
```
这个函数有三个参数:
- `arr`:指向数组的指针
- `len`:数组的长度
- `index`:指向下标的指针
函数返回值为数组中第一次出现的负数值,如果不存在负数则返回-1。同时,函数通过 `index` 指针返回满足条件的数据元素的下标,如果不存在负数则返回-1。
你可以按照以下步骤调用这个函数:
1. 声明一个整型变量 `index`,用于存储下标。
2. 调用 `findFirstNegative` 函数,并传入数组指针、数组长度以及 `index` 指针作为参数。
3. 判断函数的返回值,如果为-1,则说明数组中不存在负数;否则,返回的是数组中第一次出现的负数值,可以直接打印输出。
4. 如果函数返回了一个负数值,那么 `index` 指针的值就是满足条件的数据元素的下标,可以直接打印输出。
示例代码如下:
```c
#include <stdio.h>
int findFirstNegative(int* arr, int len, int* index);
int main()
{
int arr[] = {1, 2, -3, 4, -5, 6};
int len = sizeof(arr) / sizeof(int);
int index;
int result = findFirstNegative(arr, len, &index);
if(result == -1)
{
printf("数组中不存在负数\n");
}
else
{
printf("第一次出现的负数是 %d,下标是 %d\n", result, index);
}
return 0;
}
int findFirstNegative(int* arr, int len, int* index)
{
for(int i = 0; i < len; i++)
{
if(arr[i] < 0)
{
*index = i;
return arr[i];
}
}
*index = -1;
return -1;
}
```
输出结果为:
```
第一次出现的负数是 -3,下标是 2
```
阅读全文