C语言如何利用指针,将数组倒置啊

输入n个数值,输出倒置后的数组

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

追问

编译没问题但是运行不出来啊

追答

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-29
int a[N];
int *p=&a;
int *q=0;
for(int i=0;i<N;i++)
{
(q+i)=p(N-i-1); //地址倒置
输出 *q
}
试试
如果只是倒置输出,不需要存储倒置后的结果,直接输出
for(int i=0;i<N;i++)
*p(N-i-1);本回答被网友采纳
第2个回答  2018-12-03
两个指针,一个指向数组头p,一个指向数组尾q,p<q,指针指向的内容进行交换,然后p++,q--,试试
第3个回答  2018-12-04
如果仅仅是倒序输出,就简单的很:
for(int i=N-1;i>=0;i--)
相似回答