怎么用指针法解决数交换问题?详细的设计思路已经程序

  1. 输入10个整数,实现把最大数与最后一个数交换,最小数与第一个数交换,并输出交换前和交换后的数组。

#include <stdio.h>
void Ec_min(int* num)
{
    int i = 0;
    int n1 = 0;
    int n2 = 0;
    int max = *num;
    int min = *num;
    for (i = 0; i < 10; i++)
    {
        if ( *(num + i)>max)
        {
            n1 = i;
            max = *(num + i);
        }
        else if (*(num + i) < min)
        {
            n2 = i;
            min = *(num + i);
        }
    }
    max = *(num + n1);
    *(num + n1) = *(num + 9);
    *(num + 9) = max;

    min = *(num + n2);
    *(num + n2) = *num;
    *num = min;
}
int main()
{
    int num[10];
    int i = 0;
    printf("请输入十个数字:>\n");
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &(*(num+i)));
    }
    printf("\n\n原数组为:>");
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", num[i]);
    }//原数组打印
    Ec_min(num);   //对调函数
    printf("\n\n对调之后,最小值第一位,最大值在末尾:>\n");
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", num[i]);
    }//新数组打印
}

用指针表示数组各个元素
arr[3]可以写成*(arr+3)