qq_28839381
2015-07-18 02:23
采纳率: 16.7%
浏览 4.3k
已采纳

函数实现数组的逆序输出

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;
}

}

应该怎么填呢?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • arronbnm 2015-07-18 06:50
    已采纳

    If(k>1) Recur

    已采纳该答案
    打赏 评论
  • 91program 2015-07-18 02:44

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

    #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);
        }
    }
    
    
    打赏 评论
  • 韩小转 2015-07-18 03:12

    if k>0

    recui(a,k--)

    打赏 评论
  • Evankaka 2015-07-18 03:26

    void fun(int a[],int i)

    {

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

    fun(a,--i);

    }

    }

    打赏 评论
  • 指月玄光 2015-07-20 03:37

    递归,学习一下

    打赏 评论

相关推荐 更多相似问题