[转帖]老手是这样教新手编程的
时间:2010-06-25
来源:互联网
comp.lang.c全球最大的C语言新闻组,其Google的链接是:http://groups.google.com/group/comp.lang.c/ 可惜被GFW了。在comp.lang.c新闻组,有一个日本网友发了个贴子,说他正在学习一个在线的C语言课程,要完成一个作业,用程序输出如下的结果,而他的老师在美国,因为时差问题,他无法和他联系,所以只有上这里来寻求帮助。
- *
- ***
- *****
- *******
- *********
- *********
- *******
- *****
- ***
- *
- #define M 002354l
- #define A 000644l
- #define G 000132l
- #define I 000322l
- #define C 000374l
- #define a ;
- #define b for
- #define c ++
- #define d %
- #define e int
- #define f ,
- #define g -
- #define h 011
- #define i =
- #define j {
- #define k )
- #define l '\n'
- #define m main
- #define n <
- #define o }
- #define p >
- #define q &&
- #define r (
- #define s ||
- #define t ?
- #define u putchar
- #define v void
- #define w '*'
- #define x :
- #define y ' '
- #define _ /
- #define C_O_O_L return
- e u r e k a
- e
- m r
- v k j
- j j j j
- j j j j j
- j j j j j j
- j j j j j j j
- j e z a b r z i
- M _ A _ G _ I _ C
- a z n G a u r z d h
- + z _ h p M _ A q z d
- h + z _ h n M _ G q z _
- h n z d h + M _ I q z _ h
- p z d h g M _ C t w x y k f
- z d h g h + 1 s u r l k f z c
- k a u r l k a j j j j j j j j j
- j j C_O_O_L M _ A _ G _ I _ C a o
- o o o o o o o o o o o o o o o o o o
- o o o o
- o o o o
- o o o o
- o o o o
最后,不恶搞了,在comp.lang.c的这个贴子中看到了很多不错的“如何教新手编程”的观点,下面罗列一些:
1)你把你自认为最好程序贴出来,我会帮你看的,但我是不会帮你写的。
2)要解决这个问题,你需要先观察输出,然后找到其规律,算法总是去描述一些有规律的事情。关于你的这个程序,很明显,你可以分成两个部分,一个正三角,一个倒三角,每一行的星号都是连续的奇数,1,3,5,7,9,而前面的空格又是顺序的自然数:4,3,2,1,你看这样的规律用程序来干不是正合适吗?
从这两个例子,我们可以看到,老手应该如何去教新手,那就是,a)让其独立思考,b)步步为营的引导,c)教一种方法而不是直接给答案。希望与大家共勉。
作者: anyc 发布时间: 2010-06-25
作者: anyc 发布时间: 2010-06-25
- $ gcc -E tree.c | indent
- # 1 "tree.c"
- # 1 "<built-in>"
- # 1 "<command-line>"
- # 1 "tree.c"
- # 33 "tree.c"
- int putchar (int);
- int
- main (void)
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- int z;
- for (z =
- 002354l / 000644l /
- 000132l / 000322l /
- 000374l; z < 000132l;
- putchar (z % 011 +
- z / 011 >
- 002354l /
- 000644l
- && z % 011 +
- z / 011 <
- 002354l /
- 000132l
- && z / 011 <
- z % 011 +
- 002354l /
- 000322l
- && z / 011 >
- z % 011 -
- 002354l /
- 000374l ? '*' :
- ' '),
- z % 011 - 011 + 1
- || putchar ('\n'), z++);
- putchar ('\n');
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- return
- 002354l
- /
- 000644l
- /
- 000132l
- /
- 000322l
- /
- 000374l;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- $
作者: 没本 发布时间: 2010-06-25
作者: ydfgic 发布时间: 2010-06-25

作者: fender0107401 发布时间: 2010-06-25
所以想手工写这么一个也应该比较困难,
那原作者是怎么写的呢?
应该有相应的工具吧。

作者: fender0107401 发布时间: 2010-06-25
作者: ling0088 发布时间: 2010-06-25
作者: starwing83 发布时间: 2010-06-25
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28