C 语言 IQ 题..

软件和网站开发以及相关技术探讨
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

C 语言 IQ 题..

#1

帖子 BigSnake.NET » 2008-07-02 22:12

http://linuxfire.com.cn/~alecs/fun/xiaoming.txt

代码: 全选

Game: Help 小明.

小明初学 C 语言,写了个程序,想打印 99 个 '#'. 程序如下:

int i, n=99; main() { for(i=0; i<n; i--) { printf("#"); } }

但是这个程序是错的.

Question 1:  请大家帮他改正, 但只允许  1) 删除一个字符 or 2) 增加一个字符 or 3) 改变一个字符
Question 2:  同样的限制条件, 使得只打印一个 '#'
Qeustion 3:  同样的限制条件, 打印 100 个 '#'
可无视所有不合语言规范的东西.. 只要编译通过+答案正确就可以...
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#2

帖子 skyx » 2008-07-02 22:30

:shock:
no security measure is worth anything if an attacker has physical access to the machine
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

#3

帖子 HuntXu » 2008-07-02 22:54

skyx 写了::shock:
盖楼~
HUNT Unfortunately No Talent...
头像
ebok
帖子: 852
注册时间: 2008-02-15 0:09

#4

帖子 ebok » 2008-07-02 23:00

占楼等答案
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#5

帖子 poet » 2008-07-02 23:01

粗看无聊。细看有点意思。

int i, n=99; main() { for(i=0; -i<n; i--) { printf("#"); } }
int i, n=99; main() { for(i=0; i+n; i--) { printf("#"); } }
int i, n=99; main() { for(i=0; i<n; n--) { printf("#"); } }

遗憾的是,上面三个答案都只能解出其中一道题。另外两道不知道如何搞。
头像
linlee
帖子: 1132
注册时间: 2007-10-20 11:30

#6

帖子 linlee » 2008-07-02 23:06

需要很厚实的经验吗?
刚开始学C~~
恐怕不会结....
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#7

帖子 poet » 2008-07-02 23:07

哈哈,第二题出来了:

int i, n=99; main() { for(i=0; i<&n; i--) { printf("#"); } }
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

#8

帖子 jarryson » 2008-07-02 23:30

貌似很有难度阿,主要考你逻辑思维吧
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#9

帖子 BigSnake.NET » 2008-07-03 11:56

7 楼很厉害, 怎么想到的??
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
upsuper
帖子: 361
注册时间: 2008-06-08 13:31
来自: 福州
联系:

#10

帖子 upsuper » 2008-07-03 12:12

第三题
int i, n=99; main() { for(i=0; ~i<n; i--) { printf("#"); } }
头像
aobi
帖子: 921
注册时间: 2008-06-22 12:27

#11

帖子 aobi » 2008-07-03 12:15

大家都做出来了啊。综合的一下
int i, n=99; main() { for(i=0; i<-n; i--) { printf("#"); } }
int i, n=99; main() { for(i=0; i<n; i--) ;{ printf("#"); } }//这个要等一下才会出结果
int i, n=99; main() { for(i=0; ~i<n; i--) { printf("#"); } }
头像
upsuper
帖子: 361
注册时间: 2008-06-08 13:31
来自: 福州
联系:

#12

帖子 upsuper » 2008-07-03 12:19

我觉得7楼那个第二题比较精妙
C++是编译不过的,不过C……只有警告
头像
upsuper
帖子: 361
注册时间: 2008-06-08 13:31
来自: 福州
联系:

#13

帖子 upsuper » 2008-07-03 12:25

7楼利用了一个比较上的小漏洞……怪不得后来不让这样比了……
我觉得
int i, n=99; main() { for(i=0; i<&n; i--) { printf("#"); } }

int i, n=99; main() { for(i=0; i<n; i--) ;{ printf("#"); } }
要精妙一些

不过都很难想到的说~
头像
aobi
帖子: 921
注册时间: 2008-06-22 12:27

#14

帖子 aobi » 2008-07-03 12:29

我看到这个帖子的时候7楼已经做出这个了。我就想了另外的。等3题,我是自己试出来的。

不过2楼那个确实精妙。
头像
aobi
帖子: 921
注册时间: 2008-06-22 12:27

#15

帖子 aobi » 2008-07-03 12:30

他那个应该没点问题的
回复