函数实现数组的逆序输出

int main(int argc, char const *argv[])
{
int a[5] = {1, 2, 3, 4, 5};
int i;

recui(a, 5);

for(i=0; i<5; i++)
{
    printf("%d ", a[i]);
}
printf("\n");
return 0;

}

void recui(int a[], int k)
{
int tmp;

if()// 填空
{
    recui();//填空
    tmp = a[0];
    a[0] = a[k - 1];
    a[k - 1] = tmp;
}

}

应该怎么填呢?

If(k>1) Recur

还是递归算法啊!这么简单的算法,竟然用递归,真是没事找事!
给你一段做对参考:

#include <stdio.h>

#define N 10

void main()
{
    void fun(int a[],int);
    int i,a[N];
    for(i=0;i<N;i++)
        a[i]=i;
    fun(a,N);
    printf("/n");
}

void fun(int a[],int i)
{
    if(i>0)//不可去掉if后的花括号。否则,fun(a,--i);语句会导致本函数成为死循环
    {
        printf("%-5d",a[i-1]);
        fun(a,--i);
    }
}

if k>0

recui(a,k--)

void fun(int a[],int i)

{

if(i>0)
printf("%-5d",a[i-1]);

fun(a,--i);

}

}

递归,学习一下