!逆序存放数组元素值

求助!逆序存放数组元素值
现在想用c编写函数inverte实现 逆序存放数组元素值,就是 输入 1 2 3 4 5 6,输出 6 5 4 3 2 1
我写完之后,验证发现结果却是:
please input 6 number:1 2 3 4 5 6

Before inverte,the array is:
123456
After inverte,the array is:
354326

求教各位大神,到底是哪错了呢。。。????跪谢啊。。。。!逆序存放数组元素值

附code:
#include <stdio.h>
int inverte(int n,int *p)
{
    int *temp;
    int m;
    m=n/2;
    temp=p;
    for (int i=0;i<m;i++)
       
    {
        
        *temp=*(p+i);
    
        *(p+i)=*(p+n-i-1);
        *(p+n-i-1)=*temp;
    }
    return 0;
    
}
///////////////测试/////////////
int main(void)

{   int n=6;
    int a[n];
    int *p;
    p=a;
    printf("please input 6 number:");
    
    for(int i=0;i<n;i++ )
    { scanf("%d",&a[i]);
        
    }
    
    printf("\nBefore inverte,the array is:\n");
    
    for(int i=0;i<n;i++ )
    {
        printf("%d",*(p+i));
    }
    
    inverte(6, p);
    
    printf("\nAfter inverte,the array is:\n");
    
    for(int i=0;i<6;i++ )
    {
        printf("%d",*(p+i));
    }
    return 0;
}

------解决方案--------------------
你这个... 没看懂,但是你可以考虑用两个指针 一个指向数组头,一个指向数组尾,然后同时向中间移动,一直两个指针相等。
------解决方案--------------------
问题出在temp=p,并且你一直用*temp来做中间变量。问题是temp永远指向首地址,你想想看。你可以用一个int temp来做交换的中间变量就行了。