指针指向问题,这个我不明白

我想输入十个数,把其中最小值放在第一位,最大值放在最后一位但我这个输出结果不准确

img

img

img


#include <stdio.h>
#include <stdlib.h>
void swap(int num[])
{
    int *min=num,*max=num,*i;
    for(i=num;i<num+10;i++)//这里循环结束i指针在数组末尾
    {
        if(*min>*i)
        {
            min=i;
        }
        if(*max<*i)
        {
            max=i;
        }
    }
    i=num;//重新赋值为数组首地址
    int temp=*i;
    *i=*min;
    *min=temp;

    temp=*(i+9);
    *(i+9)=*max;
    *max=temp;
}
int main()
{
    int num[10];
    for(int i=0;i<10;i++)
    {
        scanf("%d",&num[i]);
    }
    swap(num);
    for(int i=0;i<10;i++)
    {
       printf("%d ",num[i]);
    }
    printf("\nHello world!\n");
    return 0;
}

img