一个顺序调整的有关问题,求解!

一个顺序调整的问题,求解!!!
在C中碰到一个程序要求输入十个数,最大与最后一个数交换,最小的与第一个数交换。代码如下:
void max_min_value(int number[])
{
  int *max,*min,*p,temp;
max=min=number;
for(p=number+1;p<number+10;p++)

if(*p>*max)  
max=p; /*将大数地址赋给max*/
  /*temp=number[9];
number[9]=*max;
*max=temp;*/

else if(*p<*min)
min=p; /*将小数地址赋给min*/
  temp=number[0];
number[0]=*min;
*min=temp; /*将最小数与第一个数交换*/
if(max=number)
max=min;
temp=number[9];
number[9]=*max;
*max=temp;

但是这个代码没有实现最大数与最后一位数的交换,请问一下是怎么回事啊?

------解决方案--------------------
C/C++ code

    if(max==number)
            max=min;

------解决方案--------------------
C/C++ code
void max_min_value(int number[])
{
    int *max, *min, *p, temp;

    max = min = number;
    for (p=number+1; p<number+10; p++)
    {  
        if (*p > *max)
            max = p; /*将大数地址赋给max*/
        /*temp=number[9];
        number[9]=*max;
        *max=temp;*/
        /*else */if(*p < *min) /* 这里去掉else */
            min = p; /*将小数地址赋给min*/
                /* 这3句全部去掉,等到最后确认了最大,最小数再交换 */
        /*temp = number[0];
        number[0] = *min;
        *min = temp;*/ /* 将最小数与第一个数交换 */
                /* 去掉,同上道理 */
        /*if (max == number) /* 这里少了个'=' */
            max = min;*/
        /*temp = number[9];
        number[9] = *max;
        *max = temp;*/
    }

        /* 好了: 已经找到最大,最小数了,是时候交换(如果有必要的话) */
        if (min != number)
        {
                temp = *min;
                *min = number[0];
                number[0] = temp;
        }

        if (max != number+10-1)
        {
                temp = *max;
                *max = number[9];
                number[9] = temp;
        }
}

------解决方案--------------------
max = min;*/ ==> 去掉

------解决方案--------------------
if和else没加括号,只根据条件执行紧接着的语句。后面的就与条件无关了,都要执行