关于##指针下标##的问题,如何解决?

#我这个是找最大值和对应的下标,但是当最大值在最后的时候,下标就会不准确。不知道为什么。

#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    int a[n];
    int *p=a;
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);  
        if(*(p+i)>*p)
        {
            p=p+i;
        }
    }
    printf("%d %d",*p,p-a);
    return 0; 
    }


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

int main()
{
    int n;
    scanf("%d", &n);
    int *a = (int*)malloc(sizeof(int) * n);
    int *p = a;
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
        if (*(a + i) > *p)
        {
            p = a + i;
        }
    }
    printf("%d %lld", *p, p - a);
    return 0;
}