编写函数,求出数组x的最大值和最小值,并传回主函数,n为数组长度

来源:百度知道 编辑:UC知道 时间:2024/04/30 22:03:53
编写函数 void manmin(int x[ ],int n,int *max,int *min),求出数组x的最大值和最小值,并传回主函数,n为数组长度
#include<iostream>
using namespace std;
void manmin(int x[],int n,int *max,int *min)
{
if(x == NULL || n <= 0 || max == NULL || min == NULL)
return;
int i = 0;
int lMin = x[0];
int lMax = x[0];
for (i = 1; i < n ; i++)
{
lMax = x[i] > lMax ? x[i] : lMax;
lMin = x[i] < lMin ? x[i] : lMin;
}
*max = lMax;
*min = lMin;
}
int main()
{
int x[80],n,*max,*min;
cin>>n;
for(int i=0;i<n;i++)
cin>>x[i];
max=&x[0];
min=&x[0];
manmin(x,n,max,min);
cout<<*max<<endl;
cout<<*min<<endl;
return 0;
}为什么运行不出来啊,是不是实参没有传递给被调函数啊?该咋改啊?谢谢各位大虾了!!!

我上面这位回答正确,可不可以解释下,为什么把指针换成引用就可以了呢

还有这个函数 起什么作用:
if(x == NULL || n <= 0 || max == NULL || min == NULL)
return;

void manmin(int x[ ],int n,int &max,int &min)
用引用试试。

:#include<iostream.h>
using namespace std;
void manmin(int x[],int n,int &max,int &min)
{
if(x == NULL || n <= 0 || max == NULL || min == NULL)
return;
int i = 0;
int lMin = x[0];
int lMax = x[0];
for (i = 1; i < n ; i++)
{
lMax = x[i] > lMax ? x[i] : lMax;
lMin = x[i] < lMin ? x[i] : lMin;
}
max = lMax;
min = lMin;
}
int main()
{
int x[80],n,max,min;
cin>>n;
for(int i=0;i<n;i++)
cin>>x[i];
max=x[0];
min=x[0];
manmin(x,n,max,min);
cout<<max<<endl;
cout<<min<<endl;
return 0;
}

void manmin(int x[],int n,int *max,int *min)
{
if(x == NUL