这个为什么运行不了?

//8-3输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换。写3个函数:1,输入10个数 2,进行处理 3,输出10个数

#include <stdio.h>
int main()
{
    void input(int*);
    void max_min_value(int*);
    void output(int*);
    int number[10];
    input(number);
    max_min_value(number);
    output(number);
    return 0;
 } 
 
 void input(int*number)
 {
     int i;
     printf("input 10 numbers:\n");
     for(i=0;i<10;i++,number++)
     scanf("%d",&number[i]);
  }
      
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;
    else if (*p<*min)
    {
    min=p;
    temp=number[0];
    number[0]=*min;
    *min=temp;
    }
    else if(max==number)
    {
    max=min;
    temp=number[9];
    number[9]=*max;
    *max=temp;
    }
}

void output(int*number)
{
    int*p;
    printf("new array:\n");
    for(p=number;p<number+10;p++)
    printf("%d",*p);
    printf("\n");
}

修改处见注释,供参考:

#include <stdio.h>
int main()
{
    void input(int*);
    void max_min_value(int*);
    void output(int*);
    int number[10];

    input(number);
    max_min_value(number);
    output(number);
    return 0;
}
void input(int*number)
{
     int i;
     printf("input 10 numbers:\n");
     for(i=0;i<10;i++)          //,number++)
         scanf("%d",&number[i]);
}
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;
        else if(*p<*min)
           min=p;
    }
    temp = number[0];
    number[0] = *min;
    *min = temp;

    temp = number[9];
    number[9] = *max;
    *max = temp;
}
void output(int*number)
{
    int*p;
    printf("new array:\n");
    for(p=number;p<number+10;p++)
    printf("%4d",*p);   //修改
    printf("\n");
}