大佬帮忙看一下这个递归子函数表达的算法,实在是看不懂,谢谢!

/*将数组中的字符反向输出*/
void backward(char s[],int index)
{
if(s[index])
{
backwards(s,index+1);
printf("%c",s[index]);
}
}

if后面括号里的是什么东西?是表达式吗?
这个递归算法是什么意思?
本人小白,希望大佬帮忙看一下,谢谢!

2个回答

if(s[index])
相当于
if(s[index] != '\0')
而\0是表示字符串结束的标记.

这个算法相当于以下循环的版本

void backward(char s[])
 {
int index = 0;
while(s[index]) index = index + 1;
while (index > 0)
printf("%c",s[--index]);
}

首先,if括号里肯定是表达式,这个表达式会返回true或者false
当递归到底的时候就开始倒序输出。
完善你的代码如下:

#include<stdio.h>
void backward(char s[],int index)
{
    if(s[index])
    {
        backward(s,index+1);
        printf("%c ",s[index]);
    }

}
int main()
{
    char s[] = "abcde";
    backward(s,0);
    return 0;
}

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

1
PYthon递归函数超过999就开始提示错误
1
C# 新建线程递归调用包含回调函数,怎么判断递归调用结束,获取返回值
3
关于JS中 递归的一些疑惑,希望JS大佬帮忙讲解下
1
小新自学python遇到递归问题,有一点不明白
1
菜鸟向高手们求助,如何利用递归函数写出如下三种代码
1
一个非递归树的生成算法问题
1
给出一个n叉树,一个叶子节点值,不用递归,怎样求这个叶子节点的路径?
0
函数方程等式的递归的一个比较的算法,如何利用C语言的思路去实现的
1
求助void类型函数是如何实现用递归输出1-n个数字
2
算法设计与分析 递归算法
0
函数递归运算的运用算法问题,怎么采用C语言的程序的设计的思想实现?
2
(C语言)在二叉搜索树的学习时遇到了问题,求大佬帮忙看看
0
递归函数编写计算求和的问题,怎么采用C语言的程序代码编写的过程去实现的呢?
0
sql sever 递归查询父级的父级
0
采用递归编程技术实现汉诺塔,怎么使用C语言的程序的方式具体来编写程序完成这个算法
3
js递归遍历树形结构json的问题
1
求一个代码c语言实现图的深度遍历(递归)、非递归算法以及实现图的广度遍历(队列)
1
如何理解归并排序中的递归使得两个有序数组有序再按比较首元素合并?
2
想请教一下全局变量在递归中是怎么样的
1
mysql的从子到父递归查询