2 qq 28839381 qq_28839381 于 2015.07.18 10:23 提问

函数实现数组的逆序输出

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

}

应该怎么填呢?

6个回答

arronbnm
arronbnm   2015.07.18 14:50
已采纳

If(k>1) Recur

qq_28839381
qq_28839381 回复arronbnm: 不好意思,搞错了。这没有问题
大约 3 年之前 回复
qq_28839381
qq_28839381 回复arronbnm: 不适用其他数组
大约 3 年之前 回复
arronbnm
arronbnm 每一次递归,对头尾元素进行互换;将头尾去除后,进行下一次递归;直至数组只剩下1个或者0个元素,因为不需要互换了所以结束。
大约 3 年之前 回复
qq_28839381
qq_28839381 回复arronbnm: 什么思路啊?
大约 3 年之前 回复
arronbnm
arronbnm 我去;竟然发出去了。if(k>1) recui(a+1,k-2)
大约 3 年之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.18 10:26

使用函数和指针实现数组的逆序输出
数组逆序输出
数组逆序输出
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

91program
91program   Ds   Rxr 2015.07.18 10: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);
    }
}

qq_28839381
qq_28839381 这是一道题目
大约 3 年之前 回复
laigezao
laigezao   2015.07.18 11:12

if k>0

recui(a,k--)

laigezao
laigezao 回复qq_28839381: sorry 没看清 楼下正解
大约 3 年之前 回复
qq_28839381
qq_28839381 Segmentation fault (core dumped)
大约 3 年之前 回复
Evankaka
Evankaka   Ds   Rxr 2015.07.18 11:26

void fun(int a[],int i)

{

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

fun(a,--i);

}

}

sq419412002
sq419412002   2015.07.20 11:37

递归,学习一下

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用函数和指针实现数组的逆序输出
/*  ============================================================================  Name        : Array.c  Author      :   Version     :  Copyright   : Your copyright notice  Description : Hello W
将一组数据逆序输出。
#include&amp;lt;stdio.h&amp;gt;int main(){ int i,j,n,a[100],b[100];                                          //n表示这组数据有n个。 scanf(&quot;%d&quot;,&amp;amp;n); for(i=0;i&amp;lt;n;i++) scanf(&quot;%d&quot;,&amp;amp;a[i]);   i=0;   j=n-1;   whil...
将一个数组逆序输出
将一个数组逆序输出: package demo40; import java.util.Scanner; /** * 将一个数组逆序输出 * @author Administrator * */ public class Demo31 { public static void main(String[] args) { test(); } public static v
字符串逆序输出,要求调用函数实现
比较简单,要求调用函数实现
用不同的方法实现字符串的逆序输出(C语言实现)
用不同的方法实现字符串的逆序输出(C语言实现) 今天去面试遇到面试题如下: 请将字符串"123456",逆序输出? 当时我使用是指针,以下我将后来我想到的方法,实现如下: #include #include ///////////////////////// //用指针实现字符串的逆序 char* reverse_pointer(char* str) { char* head
4-4 将正整数n逆序输出。 (25分)
编写一个递归函数实现将正整数n逆序输出。 函数接口定义:void reverse(int n);
1111: 多个整数的逆序输出(函数专题)
1111: 多个整数的逆序输出(函数专题) Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 2669  Solved: 1966 SubmitStatusWeb Board Description 输入n和n个整数,以与输入顺序相反的顺序输出这n个整数。要求不使用数组,而使用递归函数实现。 递归函数实现过程如下: void
oj2422: C语言习题 n个数逆序
问题描述:将n(n 作者:何知令 发表时间:2017年2月13日 输入:n 和 n个整数 输出:逆序输出,空格分开 代码: /* 问题描述:将n(n<20)个数按输入时顺序的逆序排列,用函数实现。 作者:何知令 发表时间:2017年2月13日 输入:n 和 n个整数 输出:逆序输出,空格分开 */ #include #include void sort (int *p,int m)
zzuli OJ 1111: 多个整数的逆序输出(函数专题)
Description 输入n和n个整数,以与输入顺序相反的顺序输出这n个整数。要求不使用数组,而使用递归函数实现。 递归函数实现过程如下: void inverse(int n) {     if(n >1)    {         (1) 读入一个整数,存入num;         (2)  将后面的n-1个数逆序输出: inverse(n-1);          
将一个数组中的数据按相反的顺序存储(将数组中的数据逆序输出)
逆序 输出数组