为什么这段求输入数组最大值和最小值及下标的代码没结果?

#include<stdio.h>
void FindMaxMin(int num[],int n,int *pMax,int *pMaxPos,int *pMin,int *pMinPos);
int main()
{
int arr[5],i;
for(i=0;i<5;i++)
{
scanf("%d",&arr[i]);
}
int *pMax,*pMin,*pMaxPos,*pMinPos;
FindMaxMin(arr,5,pMax,pMin,pMaxPos,pMinPos);
printf("最大值是%d,它的下标是%d",*pMax,*pMaxPos);
printf("最小值是%d,它的下标是%d",*pMin,*pMinPos);
return 0;
}
void FindMaxMin(int num[],int n,int *pMax,int *pMaxPos,int *pMin,int *pMinPos)
{
int i,j,k,max,min;
for(i=0;i<n-1;i++)
{
if(num[i]>num[i+1])
max=i;
else
max=i+1;
}
for(i=0;i<n-1;i++)
{
if(num[i]>num[i+1])
min=i+1;
else
min=i;
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(num[j]>num[j+1])
{
k=num[j];
num[j]=num[j+1];
num[j+1]=k;
}
}
}
*pMax=num[n-1];
*pMin=num[0];
*pMaxPos=max;
*pMinPos=min;

}


#include<stdio.h>
void FindMaxMin(int num[],int n,int *t);
int main()
{
int num[5],i;
int t[4];
for(i=0;i<5;i++)
{
scanf("%d",&num[i]);
}
FindMaxMin(num,5,t);
printf("最大值是%d,它的下标是%d\n",t[0],t[2]);
printf("最小值是%d,它的下标是%d\n",t[1],t[3]);
return 0;
}
void FindMaxMin(int num[],int n,int *t)
{
int i,j,k,max=num[0],min=num[0];
int pos1,pos2;
for(i=0;i<n-1;i++)
{
if(num[i]<num[i+1])
{
    max=num[i+1];
    pos1=i+1;
}
if(num[i]>num[i+1])
{
    min=num[i+1];
    pos2=i+1;
}
}
if(min==num[0])
{
    pos2=0;
}
if(max==num[0])
{
    pos1=0;
}

t[0]=max;
t[1]=min;
t[2]=pos1;
t[3]=pos2;

}