真实赛车3联机教学:这段程序是怎样实现输入abc输出bca倒序功能的

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 15:50:42
#include"stdio.h"
#include"math.h"
void rev(void);
main()
{
rev();
}
void rev(void)
{
char c;

c=getchar();
if(c!='\n')
{
rev();
printf("%c",c);

}

}

这是一个递归函数
过程是先从main函数第一次进入rev()函数,这时c接受第一个输入字符‘a’,于是进入if语句第二次调用rev(),这时c接受‘b’,依然进入if调用rev(),然后c接受‘c’,还是调用rev()。注意,到这儿要输入回车了,因此c接受了‘\n’,不进入if语句,返回前一个rev()没执行完的地方,执行printf语句,一个个的执行上去,依次输出了cba。

void rev(void)
{
char c;

c=getchar();
if(c!='\n')
{
rev(); //注意此句:由于是递归,最后调用函数rev()最先解套,因此,
printf("%c",c); //这一句总是最后调用函数rev()要先执行。故实现倒序输出。

}