void maxandmin( int *p, int *max, int *min )
{
*max=*min=p[0];
for(int i=1;i<10;i++)
{
if(*max
*max=p[i];
if(*min>p[i])
*min=p[i];
}
}
我不太明白你的意思,按我的理解就是这样的:
void maxandmin(int *p, int *max, int *min)
{
max=p;
min=p; //假设最大值和最小值是a[0]
int i=0;
for(;i<10;i++)
{
if(*max
max=p+i; max=p+i;
if(*min>p[i])
min=p+i;
}
}
这就是maxandmin的代码了,关于你如果要调用这个函数得这样:
#include
void maxandmin(int *p, int *max, int *min);
void mian()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},max,min;
maxandmin(a,&max,&min);
printf("最大值是:%d\n最小值是:%d",max,min);
}
void maxandmin(int *p, int *max, int *min)
{
max=p;
min=p; //假设最大值和最小值是a[0]
int i=0;
for(;i<10;i++)
{
if(*max
if(*min>p[i])
min=p+i;
}
}
反正思路就是这样,就是先假设,然后逐一比对,如果a[i]>*max就把a[i]的地址p+i给max(p默认是个地址值,就是p[0]的地址),min也一样。当所有的找完以后,就得到了想要的答案。
你可以复制过去试试,如果不对可以再联系我