c++编程题:编写一个函数求n个整数中的最大数和最小数。分别使用指针类型和引用类型的形参实现。。。。。

 我来答
百度网友0b732e6
2010-10-14
知道答主
回答量:35
采纳率:0%
帮助的人:23万
展开全部
#include<iostream>
using namespace std;

void MaxAndMin(int *v,int length,int* max,int* min)
{
*max=*min=v[0];
for(int i=1;i<length;i++)
{
if(v[i]>*max) *max=v[i];
if(v[i]<*min) *min=v[i];
}
}
void main()
{
int v[10]={1,2,5,45,788,5,8,9,5,46};
int max,min;
MaxAndMin(v,10,&max,&min);
cout<<max<<'\t'<<min<<'\n';
}
以上是指针形式。
下面是引用形式,虽然形参表里没有*号,但数组仍是指针传递的。
#include<iostream>
using namespace std;

void MaxAndMin(int v[],int length,int& max,int& min)
{
max=min=v[0];
for(int i=1;i<length;i++)
{
if(v[i]>max) max=v[i];
if(v[i]<min) min=v[i];
}
}
void main()
{
int v[10]={1,2,5,45,788,5,8,9,5,46};
int max,min;
MaxAndMin(v,10,max,min);
cout<<max<<'\t'<<min<<'\n';
}
xxcc309
2010-10-14 · TA获得超过409个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:335万
展开全部
# include <iostream.h>
void MaxAndMin1(int n,int a[],int *pMax,int *pMin)
{
*pMax = *pMin =a[0];
for(int i = 1;i<n;i++)
{
if(*pMax<a[i])
*pMax = a[i];
if(*pMin>a[i])
*pMin = a[i];
}
}

void MaxAndMin2(int n,int a[],int &pMax,int &pMin)
{
pMax = pMin =a[0];
for(int i = 1;i<n;i++)
{
if(pMax<a[i])
pMax = a[i];
if(pMin>a[i])
pMin = a[i];
}
}

void main()
{
int n=7;
int a[7] = {4,2,3,4,5,6,7};
int *p = new int;
int *q = new int;
MaxAndMin1(n,a,p,q);
cout<<*p<<*q<<endl;

int p1 = 0;
int q1 = 0;
MaxAndMin2(n,a,p1,q1);
cout<<p1<<q1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-10-14
展开全部
#include <stdio.h>
#define N // 输入数字个数
int main()
{
int max, min, temp;
printf("输入n个数:");
scanf("%d",&temp);
max=min=temp;
for(int i = 1; i < N; ++i)
{
scanf("%d",&temp);
max=max>temp?max:temp;
min=min<temp?min:temp;
}
printf("Maximum %d Minumum %d",max,min);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随风0127
2010-10-14 · TA获得超过197个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:221万
展开全部
#include <iostream>
using namespace std;

void MaxAndMin1(int n,int a[],int *pMax,int *pMin)
{
int i,small,big;
if(n%2==0)
{
if(a[0]>a[1])
{
*pMax=a[0];
*pMin=a[1];
}
else
{
*pMax=a[1];
*pMin=a[0];
}
i=2;
}
else
{
*pMax = *pMin =a[0];
i=1;
}
for(;i<n;i+=2)
{
if(a[i]>a[i+1])
{
big=a[i];
small=a[i+1];
}
else
{
big=a[i+1];
small=a[i];
}
if(big>*pMax)
*pMax=big;
if(small<*pMin)
*pMin=small;
}

}

void MaxAndMin2(int n,int a[],int &pMax,int &pMin)
{
int i,small,big;
if(n%2==0)
{
if(a[0]>a[1])
{
pMax=a[0];
pMin=a[1];
}
else
{
pMax=a[1];
pMin=a[0];
}
i=2;
}
else
{
pMax = pMin =a[0];
i=1;
}
for(;i<n;i+=2)
{
if(a[i]>a[i+1])
{
big=a[i];
small=a[i+1];
}
else
{
big=a[i+1];
small=a[i];
}
if(big>pMax)
pMax=big;
if(small<pMin)
pMin=small;
}
}

void main()
{
int n=7;
int a[7] = {4,2,3,4,5,6,7};
int *p ;
int *q ;
cout << "指针" << endl;
MaxAndMin1(n,a,p,q);
cout << "最大值 " << *p << endl;
cout << "最小值 " << *q << endl;

cout << endl;
int p1 = 0;
int q1 = 0;
cout << "引用" << endl;
MaxAndMin2(n,a,p1,q1);
cout << "最大值 " << p1 << endl;
cout << "最小值 " << q1 << endl;
cout << endl;
}
// 借用下上面xxcc309的代码 改了下 时间复杂度变小 空间复杂度变大。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式