我们都知道函数返回值只要一个,但是题目要我们实现两个返回值,这样貌似行不通?
不要着急,我们可以运用指针,通过主函数来调用函数并将变量地址传递给函数,实现在传参的过程。
#include <stdio.h>
int backmax(int arr[],int len,int *p);
int main()
{
int arr[] = {1,3,5,8,7,2,5,4,3,5};
int index;
backmax(arr,sizeof(arr)/sizeof(arr[0]),&index);
printf("%d\n",backmax(arr,sizeof(arr)/sizeof(arr[0]),&index));
printf("%d\n",arr[index]);
return 0;
}
int backmax(int arr[],int len,int *p) // int *p =&index p == &index *p=index
{
int i;
int max = arr[0];
for(i=0;i<len;i++)
{
if(max < arr[i])
{
max = arr[i];
*p = i;
}
}
return max;
}