想要调用findmax()函数,寻找数组中的最大元素,请问该怎样定义函数?

#include<iostream>
using namespace std;
int *findmax(int *array,int size,int *index);
void main()
{
int a[]={33,23,78,99,54,45,76,12,90};
int *maxaddr;
int idx;
maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);
cout<<"the index of maximum element is"<<idx<<endl;
cout<<"the address of is"<<maxaddr<<endl;
cout<<"the valve of is"<<a[idx]<<endl;
}

慕婉清6462132
浏览 302回答 1
1回答

慕尼黑的夜晚无繁华

int *findmax(int *array,int size,int *index) {if (size <= 0) return NULL;int max = array[0];*index = 0;for (int i = 1; i < size; i++) {if (array[i] > max) { // 如果大小相同的返回第一个则这么写,若返回最后一个则用>=*index = i;max = array[i];}}return &array[*index];}这个函数不应该这样定义,应该用返回值返回下标,不用返回指针,根据下标就能得到数组的元素了。既返回指针又返回下标相当于返回了多余的东西。函数设计的要紧凑不要做无谓的事情。
打开App,查看更多内容
随时随地看视频慕课网APP