当前位置: 代码迷 >> C语言 >> 字符倒序输出
  详细解决方案

字符倒序输出

热度:452   发布时间:2006-09-05 00:09:57.0
字符倒序输出

#include"stdio.h"
void main()
{int i=5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");

}
void palin(int n)
{
char next;
if(n<=1)
{next=getchar();
printf("\n\0:");
putchar(next);
}
else
{next=getchar();
palin(n-1);
putchar(next);
}
}

这段代码是怎么使5个字符倒序输出???

搜索更多相关的解决方案: 倒序  字符  输出  

----------------解决方案--------------------------------------------------------

先给你把程序简化一下:
#include"stdio.h"
void main()
{
int i=5;
void palin(int n);

palin(i);

getch();
}
void palin(int n)
{
char next;
if(n<1)
{
next=getchar();
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}

这回你看看还能不能看懂了


----------------解决方案--------------------------------------------------------
用了递归调用,递归就是要掌握上入口条件,出口条件,你仔细看看
----------------解决方案--------------------------------------------------------

这个挺简单的
LZ要是对getchar()函数理解的好的话
那这个程序一定能看懂
所以我想LZ还是先自己想想
一是锻炼一下自己独立思考的能力
二是这个问题虽然简单 但是要是用语言描述起来也是一大篇......


----------------解决方案--------------------------------------------------------
以下是引用cdmalcl在2006-9-5 0:19:47的发言:

先给你把程序简化一下:
#include"stdio.h"
void main()
{
int i=5;
void palin(int n);

palin(i);

getch();
}
void palin(int n)
{
char next;
if(n<1)
{
next=getchar();
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}

这回你看看还能不能看懂了

有点明白了

[此贴子已经被作者于2006-9-5 0:51:55编辑过]


----------------解决方案--------------------------------------------------------
哦,有点明白了,是不是缓冲区的原因?
----------------解决方案--------------------------------------------------------

不是缓冲区原因,实实在在的递归调用!


----------------解决方案--------------------------------------------------------
递归调用可以把字符倒序吗?
----------------解决方案--------------------------------------------------------
`````````出口条件,n<1
入口条件,n不小于1
执行 next=getchar(); putchar(next);
----------------解决方案--------------------------------------------------------
以下是引用wwjazz在2006-9-5 1:08:56的发言:
递归调用可以把字符倒序吗?

是字符串倒序,在这里其实延迟输入的字符而使得最先输入的字符却最后输出.
----------------解决方案--------------------------------------------------------

  相关解决方案