求c语言的字符串逆序输出的递归算法

来源:百度知道 编辑:UC知道 时间:2024/06/20 19:05:57
看清楚要求:
1.不能使用任何迭代结构(如for,while)
2.函数的原型是 (类型)change(char str[]);括号中的类型可以自定义;
3.是纯递归的算法不要借助其他函数;

有人知道怎么写么?

很简单啊

void change(char str[])
{
if(*str=='\0') return;
change(str+1);
printf("%c",*str);
}

有问题hi我

用char[i] ,char[j]分别从头部和尾部执行交换,知道i>=j时递归终止就可以了。

//---------------------------------------------------------------------------

#include <stdio.h>

void change(char str[])
{
if (str[0]) change(str+1);
if (str[0]) putchar(str[0]);
}
int main(void)
{
change("abcde");
return 0;
}
//---------------------------------------------------------------------------

#include <stdio.h>
void change ( char str[] )
{
if ( *str != 0 )
{
change ( str + 1 );
}
putchar ( *str );
return;
}

void main()
{
char str[] = "hello world!";
change ( str );
}