我用这样编但还是,最后结果中最小值是对的,最大值是错的。。。到底是怎么回事????求高手
#include<stdio.h>
int max(int *m,int n)
{
int t;
t=*m;
for(m++;m<m+(n--);m++)
if(*m>t)t=*m;
return t;
}
int min(int *q,int n)
{
int t;
t=*q;
for(q++;q<q+(n--);q++)
if(*q<t)t=*q;
return t;
}
void main()
{
int a[10],i,*p;
p=a;
printf("请输入:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("其中最大数为:%d\n",max(p,10));
printf("其中最小数为:%d\n\n\n",min(p,10));
}
数组越界了,for(q++;q<q+(n--);q++)和for(m++;m<m+(n--);m++)这个两个地方n--改为--n