void main()
{
int i,a[10];
void maxmin(int *);
printf("key the 10 numbers:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
maxmin(a);
printf("the new array is:");
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
void maxmin(int *a)
{
int *p,*max,*min,temp;
p=max=min=a;
for(p=a+1;p<a+9;p++)
{
if(*p<*min)
{
min=p;
}
else if(*p>*max)
{
max=p;
}
else
{
}
}
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,下面代码可以删除*/
if((min==a)&&(max==a+9))
{
}
else if((min==a+9)&&(max==a))
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
}
else if(min==a+9)
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
temp=*max;
*max=a[9];
a[9]=temp;
}
else if(max==a)
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
temp=*min;
*min=a[0];
a[0]=temp;
}
else
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,上面代码可以删除*/
/*下面是交换的过程*/
{
temp=a[0];
a[0]=*min;
*min=temp;
temp=a[9];
a[9]=*max;
*max=temp;
}
}
[ 本帖最后由 kettle99 于 2010-6-3 16:53 编辑 ]
{
int i,a[10];
void maxmin(int *);
printf("key the 10 numbers:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
maxmin(a);
printf("the new array is:");
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
void maxmin(int *a)
{
int *p,*max,*min,temp;
p=max=min=a;
for(p=a+1;p<a+9;p++)
{
if(*p<*min)
{
min=p;
}
else if(*p>*max)
{
max=p;
}
else
{
}
}
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,下面代码可以删除*/
if((min==a)&&(max==a+9))
{
}
else if((min==a+9)&&(max==a))
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
}
else if(min==a+9)
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
temp=*max;
*max=a[9];
a[9]=temp;
}
else if(max==a)
{
temp=a[0];
a[0]=a[9];
a[9]=temp;
temp=*min;
*min=a[0];
a[0]=temp;
}
else
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,上面代码可以删除*/
/*下面是交换的过程*/
{
temp=a[0];
a[0]=*min;
*min=temp;
temp=a[9];
a[9]=*max;
*max=temp;
}
}
[ 本帖最后由 kettle99 于 2010-6-3 16:53 编辑 ]