这段程序是怎样实现输入abc输出bca倒序功能的

2024-11-19 18:45:57
推荐回答(2个)
回答1:

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

回答2:

void rev(void)
{
char c;

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

}