/*将数组中的字符反向输出*/
void backward(char s[],int index)
{
if(s[index])
{
backwards(s,index+1);
printf("%c",s[index]);
}
}
if后面括号里的是什么东西?是表达式吗?
这个递归算法是什么意思?
本人小白,希望大佬帮忙看一下,谢谢!
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;
}