C语言每日一练
2021年9月26日
题目描述
利用递归函数调用方式,将所输入的字符以相反顺序打印出来。
分析
程序调用自身的编程技巧称为递归
( recursion)。
输入任意个字符,回车表示结束。如果没有检测到回车,则递归调用,继续输入字符;当输入回车时,停止递归;此时之前的所有的递归调用继续执行,执行顺序:最后一次递归调用到第一次调用,这样便能将字符全部反向打印。
代码实现
#include <stdio.h>
void reverse_output();
int main()
{
printf("请输入若干个字符,以回车作为结束符\n");
reverse_output();
printf("\n以上为字符串的逆序输出\n");
return 0;
}
/**
* @brief 获取若干字符并逆序打印
*/
void reverse_output()
{
char character = getchar(); //0 -> N 顺序输入
if(character != '\n') //如果不是回车,则递归调用
reverse_output();
else //检测到回车,递归结束
return;
printf("%c", character); //N -> 0 逆序输出
}