论坛: 编程破解 标题: 反向输出输入字符,用递归,给个思路,谢谢。 复制本贴地址    
作者: Greentea [napolun]    版主   登录
    应该大家都见过,以相反的顺序输出输入的字符,以“?”结束。用递归,但是不用数组。计数器部分好办,只是不知道变量应该怎么赋值和输出。请大家不吝赐教,非常感谢。给了思路就好,给出程序更好,呵呵,要是程序,最好是pascal或c,别的也行,应该能看懂。

地主 发表时间: 04-08-24 12:06

回复: lida1818 [lida1818]   论坛用户   登录
win me +  win-tc通过

#include "stdio.h"
void fun();
int main(void)
{
    fun();
   
}
void fun()
{
    char c ;
   
    if((c=getch())!='?')  //  if((c=getchar())!='?')则输入可见
    {
        fun();
        printf("%c",c);
    }
}

B1层 发表时间: 04-08-24 14:09

回复: Greentea [napolun]   版主   登录
不好意思,我比较愚钝,想了几天也想不明白,可否说说思路?
(看来c学的太差了…………)

B2层 发表时间: 04-08-27 21:42

回复: windflower [windflower]   论坛用户   登录
fun函数在一条赋值语句后自身调用,也就是说一直递归输入字符,直到输入字符“?”开始返回,从堆栈中按先进后出,那么自然输出的结果与输入是相反的了。



B3层 发表时间: 04-08-27 23:13

回复: lida1818 [lida1818]   论坛用户   登录
实际上有更为简练地写法

#include "stdio.h"
int main(void)
{
    char c ;
   
    if((c=getch())!='?')
    {
        main();
        printf("%c",c);
    }
}

直接调用main()

B4层 发表时间: 04-08-28 10:49

回复: Greentea [napolun]   版主   登录
好笨,居然忘了栈…………刚刚开始学数据结构,挺晕的…………

B5层 发表时间: 04-08-28 19:10

回复: 286 [unique]   版主   登录

TO 烟雨平生:
这样也行吗?

B6层 发表时间: 04-08-30 09:57

回复: lida1818 [lida1818]   论坛用户   登录
行!

B7层 发表时间: 04-08-30 13:03

回复: TomyChen [quest]   版主   登录
楼上的代码真强

学习中

B8层 发表时间: 04-08-30 16:01

回复: blegding [blegding]   论坛用户   登录
很简单的c问题,有各位gg在,偶就不献丑了。

B9层 发表时间: 04-09-01 17:26

回复: afan271314 [afan271314]   论坛用户   登录
你好牛B  这样都能想的出来 

B10层 发表时间: 04-09-01 20:12

回复: gk_redondo [gk_redondo]   论坛用户   登录
弓虽

B11层 发表时间: 04-09-02 19:59

回复: yuanrulai [yuanrulai]   论坛用户   登录
强啊
如果是我的话我就会想到用循环了
太强了




[此贴被 排山倒海(yuanrulai) 在 09月12日00时28分 编辑过]

B12层 发表时间: 04-09-12 00:13

回复: ysfilone [ysfilone]   论坛用户   登录
我想这个只是个经验的问题~~~~~~~~

这么简单的问题 看不出什么实力吧~

B13层 发表时间: 04-09-12 16:53

回复: flyboy1985 [flyboy1985]   论坛用户   登录
main函数怎么能调用自身呢???
书上写着一个程序只能有一个main函数
你在main中调用自身可能吗????

B14层 发表时间: 04-09-20 19:53

回复: ysfilone [ysfilone]   论坛用户   登录
main()是可以调用自身的~~!!!

你说的那本书太老了~~~~~~~

B15层 发表时间: 04-09-21 22:19

回复: f [yifanernei]   论坛用户   登录
虽说可以,可是从代码的可读性,上看还是不要省这个事的好!
main函数也可以这么用
说真的,没想过也没见过这么做的!

B16层 发表时间: 04-09-22 00:49

回复: liuyit [liuyit]   论坛用户   登录
兄弟,恐怕有些问题把,我在TC下无法通过编译,一个简单的递归调用,不过是调用MAIN()函数本身,但为什么通不过,你自己试验过没?

B17层 发表时间: 04-09-24 21:09

回复: f [yifanernei]   论坛用户   登录
TC下没试,vc++下可以

B18层 发表时间: 04-09-25 00:41

回复: ysfilone [ysfilone]   论坛用户   登录
你的编译器也太老了

新标准是许可的




B19层 发表时间: 04-09-25 12:58

回复: lida1818 [lida1818]   论坛用户   登录
不会的,C89,C99标准都支持的。

楼上那位编译通不过的,参看286的置顶贴,设置好你的编译器。



B20层 发表时间: 04-09-25 14:44

回复: burningice [burningice]   论坛用户   登录
昨天看书,好像是c可以这样递归调用main()函数,c++不可以递归main()

B21层 发表时间: 04-09-26 14:45

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号