| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1717 人关注过本帖, 2 人收藏
标题:想问大家一个程序自我复制的问题(quine)
只看楼主 加入收藏
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
结帖率:98.63%
收藏(2)
已结贴  问题点数:20 回复次数:13 
想问大家一个程序自我复制的问题(quine)

 #include<stdio.h>
char *s="#include<stdio.h>%cchar *s=%c%s%c;main(){printf(s,10,34,s,34,10);return 0}%c";main(){printf(s,10,34,s,34,10);return 0;}


上面这个程序执行之后会把自己的代码打印出来,这个问题应该叫做"quine",

网上有这类程序的收集

据说执行

printf(s,10,34,s,34,10);

之后会打印第1,2行

这个printf是怎么一回事??好像很多这类程序都有 10, 34这两个数字

并且字符串s里没有换行符,并且(space都被%c处理了??)

这里%c 又是怎么回事?各种不解?
2012-07-26 22:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
10是换行 貌似对应\r? 我忘了。。
2012-07-26 23:00
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
32也就是空格了
2012-07-26 23:01
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 3楼 zklhp
好像是的矮
34是引号”
10是换行符

The quieter you become, the more you can hear
2012-07-26 23:08
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
眼神不好了 看成32了。。。
2012-07-26 23:16
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:8 
ASCII码唔,10是'\n',34是'\"'
这个printf();
首先把第一个参数s作为格式字符串,之后的4个参数对应字符串里边的四个格式字符

[ 本帖最后由 LShang 于 2012-7-26 23:46 编辑 ]
收到的鲜花
  • madfrogme2012-07-27 09:23 送鲜花  5朵   附言:我很赞同

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-26 23:29
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 6楼 LShang
原来如此,明白了,非常感谢

The quieter you become, the more you can hear
2012-07-26 23:40
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
这种东西就是构思的比较巧而已。

印象里见过数学里也有一个类似的,有人找了一个一元函数,它的函数图像正好是是它自己的解析表达式。
表达式里面用了个常数 k,巨大无比,怎么也有个几十几百位的。那章论文详细的讲了这个常数是怎么定的,而且那个数好像还有点什么特殊的性质。

感觉除了想说构思出来的人很牛X以外,也想说他吃饱了撑的。
不过楼主举的这个 C 程序,好像很有名。我在不止一个地方看过。
2012-07-27 05:05
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 5楼 zklhp
没有把字体放大的功能,对不住了

什么时候才能加个能把字体放大的功能啊,

The quieter you become, the more you can hear
2012-07-27 09:54
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 8楼 pangding
看了一下wiki,好想问题确实是从数学里净化来的

The quieter you become, the more you can hear
2012-07-27 09:59
快速回复:想问大家一个程序自我复制的问题(quine)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016499 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved