周末, 轻松一下.
本文来自: http://coolshell.cn/?p=2420
comp.lang.c全球最大的C语言新闻组,其Google的链接是:http://groups.google.com/group/comp.lang.c/ 可惜被GFW了。在comp.lang.c新闻组,有一个日本网友发了个贴子,说他正在学习一个在线的C语言课程,要完成一个作业,用程序输出如下的结果,而他的老师在美国,因为时差问题,他无法和他联系,所以只有上这里来寻求帮助。
* *** ***** ******* ********* ********* ******* ***** *** *
很明显,在comp.lang.c上发这种贴子是一定会被拍的很惨的,这样的事,以前在SUN的论坛上也发生过,详情请看这里。还有一个去软件官网上要一个盗版序列号的。果不然后,我看到了这样的一个回贴。提供这样的一段代码:
01 |
#define M 002354l |
02 |
#define A 000644l |
03 |
#define G 000132l |
04 |
#define I 000322l |
05 |
#define C 000374l |
06 |
#define a ; |
07 |
#define b for |
08 |
#define c ++ |
09 |
#define d % |
10 |
#define e int |
11 |
#define f , |
12 |
#define g - |
13 |
#define h 011 |
14 |
#define i = |
15 |
#define j { |
16 |
#define k ) |
17 |
#define l '/n' |
18 |
#define m main |
19 |
#define n < |
20 |
#define o } |
21 |
#define p > |
22 |
#define q && |
23 |
#define r ( |
24 |
#define s || |
25 |
#define t ? |
26 |
#define u putchar |
27 |
#define v void |
28 |
#define w '*' |
29 |
#define x : |
30 |
#define y ' ' |
31 |
#define _ / |
32 |
#define C_O_O_L return |
33 |
e u r e k a |
34 |
e |
35 |
m r |
36 |
v k j |
37 |
j j j j |
38 |
j j j j j |
39 |
j j j j j j |
40 |
j j j j j j j |
41 |
j e z a b r z i |
42 |
M _ A _ G _ I _ C |
43 |
a z n G a u r z d h |
44 |
+ z _ h p M _ A q z d |
45 |
h + z _ h n M _ G q z _ |
46 |
h n z d h + M _ I q z _ h |
47 |
p z d h g M _ C t w x y k f |
48 |
z d h g h + 1 s u r l k f z c |
49 |
k a u r l k a j j j j j j j j j |
50 |
j j C_O_O_L M _ A _ G _ I _ C a o |
51 |
o o o o o o o o o o o o o o o o o o |
52 |
o o o o |
53 |
o o o o |
54 |
o o o o |
55 |
o o o o |
这段程序是可以编译通过的,没有任何问题,而且还是可以得到正确的结果的。关于这样的程序,你可以参考本站的这篇文章《6个变态的C语言Hello World程序》,而另一篇文章教你如何搞乱你的C代码。呵呵。当然,你并不需要把在你的VC或是GCC下编译这段代码,现在什么都有在线了,编译器当然也在线了,这里是一篇关于在线编译器的文章,甚至一个在线的IDE(连这个网站的CTO都在本站留言了),上去编译一下你就可以看到结果了。
最后,不恶搞了,在comp.lang.c的这个贴子中看到了很多不错的“如何教新手编程”的观点,下面罗列一些:
1)你把你自认为最好程序贴出来,我会帮你看的,但我是不会帮你写的。
2)要解决这个问题,你需要先观察输出,然后找到其规律,算法总是去描述一些有规律的事情。关于你的这个程序,很明显,你可以分成两个部分,一个正三角,一个倒三角,每一行的星号都是连续的奇数,1,3,5,7,9,而前面的空格又是顺序的自然数:4,3,2,1,你看这样的规律用程序来干不是正合适吗?
从这两个例子,我们可以看到,老手应该如何去教新手,那就是,a)让其独立思考,b)步步为营的引导,c)教一种方法而不是直接给答案。希望与大家共勉。
(全文完)