将输入的元素逆序输出,改了很多遍还是没改出来

#include <stdio.h>
void reverse(int *data,int len)
{
int *p,i;
p=data;
for(i=0;i<len;i++)
{
(data+i)=(p+len-1-i);
}
}

void main()
{
int a[1024],len,i;
printf("输入数组长度:");
scanf("%d",&len);
printf("输入%d个整数:",len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
int *data=NULL;
data=a;
reverse(data,len);
for(i=0;i<len;i++,data++)
printf("%d ",*data);
}

你题目的解答代码如下:

#include <stdio.h>
void reverse(int *data, int len)
{
    int *p, i, t;
    p = data;
    for (i = 0; i < len/2; i++)
    {
        t = *(data + i);
        *(data + i) = *(p + len - 1 - i);
        *(p + len - 1 - i) = t;
    }
}

void main()
{
    int a[1024], len, i;
    printf("输入数组长度:");
    scanf("%d", &len);
    printf("输入%d个整数:", len);
    for (i = 0; i < len; i++)
        scanf("%d", &a[i]);
    int *data = NULL;
    data = a;
    reverse(data, len);
    for (i = 0; i < len; i++, data++)
        printf("%d ", *data);
}

如有帮助,望采纳!谢谢!