输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。//练习函数指针,程序有错,一个结果也没有,求改错。

//
#include<stdio.h>
int pmax(int *a,int n,int *t)
{
    int j;
    *t=0;
        for(j=0;j<n-1;j++)
            if(a[j]>a[*t]) *t=j;
    return *t;
}
int pmin(int *a,int n,int *t)
{
    int j;
    *t=0;
        for(j=0;j<n-1;j++)
            if(a[j]<a[*t]) *t=j;
    return *t;
}
int main()
{
    int k,m,t,a[10],i,(*pf)(int *,int ,int *);
    printf("请输入10个数字:\n");
    for(i=0;i<10;i++)
        scanf("%d",*(a+i));
    pf=pmax;
    k=pf(a,10,&t);
    m=a[0];
    a[0]=a[k];
    a[k]=m;
    pf=pmin;
    k=pf(a,10,&t);
    m=a[9];
    a[9]=a[k];
    a[k]=m;
    printf("10个数字重新排序为:\n");
    for(i=0;i<10;i++)
        printf("%d ",&a[i]);
    return 0;
}

scanf("%d",a+i);
printf("%d ",a[i]);

2个for循环都没到最后一个元素
for(j=0;j<n;j++)//

总共四个地方有错误:

img

img