|
![]() | 作者: 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] ![]() |
登录 |
虽说可以,可是从代码的可读性,上看还是不要省这个事的好!![]() ![]() ![]() ![]() ![]() 说真的,没想过也没见过这么做的! ![]() ![]() ![]() |
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号