输入10个整数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,写三个函数:①输入10个数;②进行处理;③输出10个数,

我自己写了一个程序,但是很多报错运行也不对,没有输出,看不懂哪里错了,希望各位看看。


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void sort_min(int a[10],int *p_min);
void sort_max(int a[10],int *p_max);

int main()
{
    int a[10];
    
    int *p_min=a[0];
    int *p_max=a[9];
    
    for(int i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    
    sort_min(a[10],*p_min);
    sort_max(a[10],*p_max);
    
    printf("%d",*p_min);
    
    for(int i=1;i<9;i++)
    {
        if(a[i]==p_max)
        {
            printf("%d",a[9]);
        }
        if(a[i]==p_min)
        {
            printf("%d",a[0]);
        }
        else
        {
            printf("%d",a[i]);
        }
    }
    
    return 0;
}

void sort_min(int a[10],int *p_min)
{
    int temp;
    
    for(int i=1;i<10;i++)
    {
        temp=a[i];
        if(*p_min<temp)
        {
           *p_min=temp;
        }
    }
} 

void sort_max(int a[10],int *p_max)
{
    int temp;
    
    for(int i=8;i>=0;i--)
    {
        temp=a[i];
        if(*p_max<temp)
        {
           *p_max=temp;
        }
    }
}

把错误贴出来啊,方便解决
先求出最大最小值,然后和首尾进行交换就行了。